This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/65032] [5 Regression] ICE in reload_combine_note_use, at postreload.c:1556 on i686-linux-gnu


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]