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

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |msebor at gcc dot gnu.org

--- Comment #4 from Martin Sebor <msebor at gcc dot gnu.org> ---
(In reply to sgunderson from comment #2)

> file; how would I know which one to look
> through to find the two differing definitions?

One thing to try might be to add static_assert() statements to the header(s)
that define these allegedly incompatible symbols (such as struct st_vio) and
using C++ or GCC type traits verify that they and all their members are in fact
of the expected type, independent of any macros (like MYSQL_VIO).  If you can
then compile all the translation units successfully without LTO and still get
errors with LTO that would suggest a bug in GCC and might also give more
information to debug it.  Otherwise, errors without LTO should point to the
translation units that define the symbols in incompatible ways.

Reply via email to