https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64978
--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- trippels@gcc2-power8 makeconv % cat msgfmt.ii typedef enum { } UErrorCode; class A { virtual A *m_fn1 () const; }; class B : A { B (const B &); A *m_fn1 () const; class PluralSelectorProvider { public: PluralSelectorProvider (); } pluralProvider; PluralSelectorProvider ordinalProvider; void m_fn2 (const B &, UErrorCode &); }; UErrorCode a; B::B (const B &p1) { m_fn2 (p1, a); } A * B::m_fn1 () const { B (*this); } void B::m_fn2 (const B &, UErrorCode &) { for (;;) m_fn1 (); } trippels@gcc2-power8 makeconv % cat reldtfmt.ii typedef enum { } UErrorCode; namespace icu_52 { class UnicodeString { public: UnicodeString (int); }; } enum UDateFormatStyle { }; namespace icu_52 { class Locale; class RelativeDateFormat { RelativeDateFormat (UDateFormatStyle, UDateFormatStyle, const Locale &, UErrorCode &); void m_fn1 (); }; class MessageFormat { public: MessageFormat (const UnicodeString &, UErrorCode &); }; RelativeDateFormat::RelativeDateFormat (UDateFormatStyle, UDateFormatStyle, const Locale &, UErrorCode &) { m_fn1 (); } UErrorCode a; void RelativeDateFormat::m_fn1 () { MessageFormat (0, a); } } trippels@gcc2-power8 makeconv % g++ -fPIC -flto -O3 -fvisibility=hidden -std=c++11 -c msgfmt.ii trippels@gcc2-power8 makeconv % g++ -fPIC -flto -O3 -fvisibility=hidden -std=c++11 -c reldtfmt.ii trippels@gcc2-power8 makeconv % /home/trippels/gcc_test/usr/local/bin/../lib/gcc/../../libexec/gcc/powerpc64-unknown-linux-gnu/5.0.0/lto1 -quiet -fwpa msgfmt.o reldtfmt.o lto1: internal compiler error: in ipcp_verify_propagated_values, at ipa-cp.c:1060 0x10d1bbef ipcp_verify_propagated_values() ../../gcc/gcc/ipa-cp.c:1060 0x10d1dcfb ipcp_propagate_stage ../../gcc/gcc/ipa-cp.c:2761 0x10d1dcfb ipcp_driver ../../gcc/gcc/ipa-cp.c:4410 0x10d1dcfb execute ../../gcc/gcc/ipa-cp.c:4505 Please submit a full bug report, with preprocessed source if appropriate.