https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78105
--- Comment #13 from PeteVine <tulipawn at gmail dot com> --- Also, could these (sample) warnings actually matter when using ld.gold? NB, lra-constraints.c features in the previously provided backtrace: ../../libdecnumber/decNumber.c:3582:0: note: code may be misoptimized unless -fno-strict-aliasing is used ../../gcc/../libdecnumber/decNumber.h:118:0: warning: type of ‘decNumberFromString’ does not match original declaration [-Wlto-type-mismatch] decNumber * decNumberFromString(decNumber *, const char *, decContext *); ../../libdecnumber/decNumber.h:118:0: warning: type of ‘decNumberFromString’ does not match original declaration [-Wlto-type-mismatch] decNumber * decNumberFromString(decNumber *, const char *, decContext *); ../../libdecnumber/decNumber.h:118:0: warning: type of ‘decNumberFromString’ does not match original declaration [-Wlto-type-mismatch] decNumber * decNumberFromString(decNumber *, const char *, decContext *); ../../libdecnumber/decNumber.h:118:0: warning: type of ‘decNumberFromString’ does not match original declaration [-Wlto-type-mismatch] decNumber * decNumberFromString(decNumber *, const char *, decContext *); ../../libdecnumber/decNumber.c:489:0: note: ‘decNumberFromString’ was previously declared here decNumber * decNumberFromString(decNumber *dn, const char chars[], ../../libdecnumber/decNumber.c:489:0: note: code may be misoptimized unless -fno-strict-aliasing is used ../../gcc/vec.h:1552:1: warning: ‘safe_push’ violates the C++ One Definition Rule [-Wodr] vec<T, va_heap, vl_ptr>::safe_push (const T &obj MEM_STAT_DECL) ^ ../../gcc/vec.h:1552:1: note: return value type mismatch vec<T, va_heap, vl_ptr>::safe_push (const T &obj MEM_STAT_DECL) ^ ../../gcc/loop-invariant.c:100:8: note: type ‘struct invariant’ itself violate the C++ One Definition Rule struct invariant ^ ../../gcc/lra-constraints.c:4742:8: note: the incompatible type is defined here struct invariant ^ ../../gcc/vec.h:1552:1: note: ‘safe_push’ was previously declared here vec<T, va_heap, vl_ptr>::safe_push (const T &obj MEM_STAT_DECL) ^ ../../gcc/vec.h:1552:1: note: code may be misoptimized unless -fno-strict-aliasing is used ../../gcc/vec.h:1540:1: warning: ‘quick_push’ violates the C++ One Definition Rule [-Wodr] vec<T, va_heap, vl_ptr>::quick_push (const T &obj) ^ ../../gcc/vec.h:1540:1: note: return value type mismatch vec<T, va_heap, vl_ptr>::quick_push (const T &obj) ^ ../../gcc/loop-invariant.c:100:8: note: type ‘struct invariant’ itself violate the C++ One Definition Rule struct invariant ^ ../../gcc/lra-constraints.c:4742:8: note: the incompatible type is defined here struct invariant ^ ../../gcc/vec.h:1540:1: note: ‘quick_push’ was previously declared here vec<T, va_heap, vl_ptr>::quick_push (const T &obj) ^ ../../gcc/vec.h:1540:1: note: code may be misoptimized unless -fno-strict-aliasing is used