------- Comment #4 from rguenth at gcc dot gnu dot org 2006-05-29 13:17 -------
Further reduced testcase:
extern int foo (__const char * __format, ...);
extern int verbose;
void demux_open_rtp(void)
{
int* mem = __null;
int* rtspClient = __null;
char* sdpDescription;
if (sdpDescription == __null) {
extern int verbose;
rtspClient = new int[verbose];
}
int* mediaSession = new int[4];
int* iter = mediaSession+1;
int* subsession;
if ((subsession = iter) != __null) {
foo ("%s RTP subsession\n", sdpDescription);
if (verbose > 0)
foo ("Increased socket receive buffer");
}
}
static inline const char *tag(const void *) { }
void afterReading(void* bufferQueue)
{
if (verbose > 0)
foo ("%s stream has been synchronized using RTCP %s\n",
tag(bufferQueue), tag(bufferQueue));
}
fails with cc1plus -O -frandom-seed=0 --param ggc-min-expand=0 --param
ggc-min-heapsize=0 if traced with valgrind, ICEs/segfaults randomly.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27793