This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/65032] [5 Regression] ICE in reload_combine_note_use, at postreload.c:1556 on i686-linux-gnu
- From: "trippels at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 22 Feb 2015 20:43:18 +0000
- Subject: [Bug target/65032] [5 Regression] ICE in reload_combine_note_use, at postreload.c:1556 on i686-linux-gnu
- Auto-submitted: auto-generated
- References: <bug-65032-4 at http dot gcc dot gnu dot org/bugzilla/>
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