------- Comment #5 from iains at gcc dot gnu dot org 2010-05-24 19:22 ------- this has nothing to do with tls it is a general issue with ObjC/lto.. : the following code (OK w.out, error with -flto) =======
cat trivial.m: extern int printf (char *,...) ; typedef struct objc_class *Class; struct objc_class { Class isa; /* other stuff... */ } ; @interface Object { @public Class isa; } +initialize; +(Class)class; @end @implementation Object +initialize { return self; } +(Class)class { return (Class)self; } @end int main(void) { [Object class]; printf("trivial OK\n"); return 0; } === will take a look at it as soon as poss. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44140