https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81668
--- Comment #14 from Steinar H. Gunderson <steinar+gcc at gunderson dot no> --- I tested with a GCC snapshot (at r267505). I can now build all mysqld with LTO and get exactly one LTO warning, and it's a true positive (two Bison parsers that we haven't managed to untangle yet). [1/1] Linking CXX executable runtime_output_directory/mysqld ../sql/sql_lex.h:2067:7: warning: type 'union YYSTYPE' violates the C++ One Definition Rule [-Wodr] 2067 | union YYSTYPE { | ^ ../storage/innobase/include/fts0pars.h:50: note: a different type is defined in another translation unit 50 | typedef union YYSTYPE | ../sql/sql_lex.h:2071:18: note: the first difference of corresponding definitions is field 'hint_type' 2071 | opt_hints_enum hint_type; | ^ fts0pars.y:62: note: a field with different name is defined in another translation unit