/* Test assignments and comparisons involving `one-off' protocols.  */
/* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
/* { dg-do compile } */
// { dg-additional-options "-Wno-objc-root-class" }

#include <objc/objc.h>

@protocol MyProtocol
- (void) method;
@end

@interface MyClass
@end

int main()
{
  id obj = nil;
  id <MyProtocol> obj_p = nil;
  MyClass<MyProtocol> *obj_cp = nil;

  obj_cp = obj; /* Ok */
  obj = obj_cp; /* Ok */

  obj_cp = obj_p; /* Ok */
  obj_p = obj_cp; /* Ok */
  
  if (obj_cp == obj) ; /* Ok */
  if (obj == obj_cp) ; /* Ok */

  if (obj_cp == obj_p) ; /* Ok */
  if (obj_p == obj_cp) ; /* Ok */

  return 0;
}
