We don't track bugs reported via email. If you want to make sure you get an answer, use the bugzilla database instead. This doesn't seem to be a gcc bug though.

In C++, the inline keyword is similar to what "static inline" means in GNU C, i.e. only emit the function if it is used. Since there is no use of the function in a.cpp, gcc does not emit it. You can see this if you compile a.cpp with -S and look at the assembler output.

You can fix this by deleting the use of the inline keyword. Or you can fix it by putting the inline function definition into the a.h file instead of the a.cpp file. This way it will be visible in main.cpp when we call it, and then gcc will emit it.

Or you can fix it by using pragma implementation and pragma interface as you discovered.

I'm not a C++ expert.  There may also be other ways to fix this.
--
Jim Wilson, GNU Tools Support, http://www.specifix.com

Reply via email to