https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67455
Eric Gallager <egallager at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2017-07-27 CC| |egallager at gcc dot gnu.org Component|objc |libobjc Summary|Inheriting from Object |Inheriting from Object |doesn't provide alloc, init |(with GNU runtime) doesn't |or new rendering methods |provide alloc, init, or |usless |new, rendering methods | |useless Ever confirmed|0 |1 --- Comment #4 from Eric Gallager <egallager at gcc dot gnu.org> --- The only warning I get when compiling the program is: $ /usr/local/bin/gcc -o 67455 67455.m -lobjc 67455.m: In function ‘main’: 67455.m:51:2: warning: incompatible implicit declaration of built-in function ‘printf’ printf("Initial Value: %d\n", [aTestObject value]); ^~~~~~ 67455.m:51:2: note: include ‘<stdio.h>’ or provide a declaration of ‘printf’ $ When running it, I get this output: $ ./67455 Initial Value: 0 +45 Value: 45 -63 Value: -18 +103 Value: 85 $ After including <stdio.h>, when explicitly specifying the runtime flag, I only get the warning with -fgnu-runtime, which leads to a crash when running it: $ /usr/local/bin/gcc -fnext-runtime -o 67455_next 67455.m -lobjc $ ./67455_next Initial Value: 0 +45 Value: 45 -63 Value: -18 +103 Value: 85 $ /usr/local/bin/gcc -fgnu-runtime -o 67455_gnu 67455.m -lobjc 67455.m: In function ‘-[TestObject init]’: 67455.m:21:2: warning: ‘Object’ may not respond to ‘-init’ if ((self = [super init])) ^~ 67455.m:21:2: warning: (Messages without a matching method signature 67455.m:21:2: warning: will be assumed to return ‘id’ and accept 67455.m:21:2: warning: ‘...’ as arguments.) 67455.m: In function ‘main’: 67455.m:51:2: warning: ‘TestObject’ may not respond to ‘+alloc’ TestObject *aTestObject = [[TestObject alloc] init]; ^~~~~~~~~~ $ ./67455_gnu Bus error $ So confirming for the GNU runtime. Since it's a runtime issue, changing component to libobjc. Feel free to change back if I'm wrong.