I\'m not quite sure about this in the standards. Say I have three files like this:
foo.h
#include
inline void foo();
C++0X draft N3225 says in 7.1.2 Function specifiers
:
clause 2: A function declaration with an inline specifier declares an inline function
clause 4: An inline function shall be defined in every translation unit in which it is odr-used and shall have exactly the same definition in every case.
So, to me, it looks like gcc is right & clang wrong, but there's still a (slim) chance that things were (are?) different in C++03..