Take the following files: ------ a.c ------ extern inline void f(void) { } ------ b.c ------ void f(void) {
} ------ c.c ------ extern inline void f(void) { } Compiling in any order should work. Current situation: a.c b.c. c.c: Does NOT. a.c c.c b.c: DOES b.c a.c c.c: Does NOT. b.c c.c a.c: Does NOT. Basically the order depends on where b.c is places, if b.c is placed last it works, otherwise it does not. Note this is causing --enable-intermodule build to fail. -- Summary: IMA and external inline don't get along Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: rejects-valid, build Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19152