https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70018

--- Comment #3 from Sanjoy Das <sanjoy at playingwithpointers dot com> ---
(In reply to Andrew Pinski from comment #1)
> In C++ code, the one definition rule says that all TU that contains an
> inline function, they need to have the same definition.  If they have
> different definition, then the code is undefined at runtime and no
> diagnostic is required.

Hi Andrew,

I believe that is an incorrect assessment of the test case:
https://github.com/sanjoy/comdat-ipo

At the C++ source level there is only one definition of maybe_divide
that is in header.hpp included by both source-a.cpp and source-b.cpp.
If this violates ODR then every C++ program with inline functions in
the header violates ODR. :)

Reply via email to