/* { dg-lto-do run } */
extern "C" {
extern int printf (const char *,...) ;
extern void abort (void) ;
} 
typedef struct objc_class *Class;
struct objc_class {
    Class isa;
    /* other stuff... */
}  ;
@interface myRootObject {
@public
     Class isa; 
}
+initialize;
+(Class)class;
@end
@implementation myRootObject
+initialize {
     return self;
}
+(Class)class {
     return (Class)self;
}
@end
int main(void)
{
  Class cl = [myRootObject class];
  if (cl != (Class)0) {
    printf((char *)"trivial OK\n");
    return 0;
  }
  abort () ;
}