https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65032
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vmakarov at gcc dot gnu.org --- Comment #4 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- markus@x4 tmp % cat testc.ii #pragma GCC visibility push(hidden) #pragma GCC visibility push(default) extern "C" { typedef int int64_t __attribute__ ((__mode__ (__DI__))); } enum class nsresult; #pragma GCC visibility pop class A { float mRawPtr; public: A (float *); }; class B { public: B (int64_t, int, int); }; typedef struct { int channels; } vorbis_info; template <typename _Key> class C { public: typedef int size_type; size_type erase (_Key &); }; template <typename _Key> class D { public: typedef _Key key_type; typedef C<key_type> _Rep_type; _Rep_type _M_t; typename _Rep_type::size_type erase (key_type p1) { return _M_t.erase (p1); } }; class F { public: vorbis_info mInfo; D<int *> mVorbisPacketSamples; void ValidateVorbisPacketSamples (int *); int64_t Time (int64_t); }; class G { nsresult DecodeVorbis (int *); F *mVorbisState; int64_t mDecodedAudioFrames; }; int fn1 (float ***); void fn2 (int); void F::ValidateVorbisPacketSamples (int *p1) { mVorbisPacketSamples.erase (p1); } nsresult G::DecodeVorbis (int *p1) { float **a; int b; long long c; while ((b = fn1 (&a))) { mVorbisState->ValidateVorbisPacketSamples (p1); A (new float); for (; mVorbisState->mInfo.channels;) { } int64_t d = mVorbisState->Time (c - b); (B (d, b, mVorbisState->mInfo.channels)); mDecodedAudioFrames -= b; fn2 (b); } } markus@x4 tmp % g++ -c -m32 -Os -std=gnu++11 -fPIC -fstack-protector-strong -fomit-frame-pointer testc.ii testc.ii: In member function ‘nsresult G::DecodeVorbis(int*)’: testc.ii:84:1: internal compiler error: in reload_combine_note_use, at postreload.c:1556 } ^ Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. markus@x4 tmp % /var/tmp/gcc_test/usr/local/bin/g++ -c -m32 -Os -std=gnu++11 -fPIC -fstack-protector-strong -fomit-frame-pointer testc.ii testc.ii: In member function ‘nsresult G::DecodeVorbis(int*)’: testc.ii:84:1: internal compiler error: in reload_combine_note_use, at postreload.c:1556