From: Richard Guenther Date: Fri, 23 Apr 2010 15:32:22 +0000 (+0000) Subject: re PR middle-end/41734 (ICE in cgraph_mark_functions_to_output, at cgraphunit.c:1137... X-Git-Tag: releases/gcc-4.6.0~7700 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7a38245d60291e0b41f565dc9a9ea6bc96bb933e;p=thirdparty%2Fgcc.git re PR middle-end/41734 (ICE in cgraph_mark_functions_to_output, at cgraphunit.c:1137 with -fwhopr) 2010-04-23 Richard Guenther PR lto/41734 * gcc.dg/lto/20100423-2_0.c: New testcase. * gcc.dg/lto/20100423-2_0.c: Likewise. From-SVN: r158670 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 28b1201d2423..dacc10ebb2c2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-04-23 Richard Guenther + + PR lto/41734 + * gcc.dg/lto/20100423-2_0.c: New testcase. + * gcc.dg/lto/20100423-2_0.c: Likewise. + 2010-04-23 Richard Guenther PR lto/43455 diff --git a/gcc/testsuite/gcc.dg/lto/20100423-2_0.c b/gcc/testsuite/gcc.dg/lto/20100423-2_0.c new file mode 100644 index 000000000000..4f98da4a3a7f --- /dev/null +++ b/gcc/testsuite/gcc.dg/lto/20100423-2_0.c @@ -0,0 +1,25 @@ +/* { dg-lto-do link } */ +/* { dg-lto-options {{-O2 -flto} {-O2 -fwhopr} {-O3 -flto} {-O3 -fwhopr}} } */ + +typedef unsigned int size_t; +extern struct _IO_FILE *stderr; +typedef unsigned char uch; +extern uch inbuf[]; +unsigned insize; +char *progname; +extern void read_error (void); +int fill_inbuf(int eof_ok) +{ + if (insize == 0) + { + if (eof_ok) + return -1; + read_error(); + } + return inbuf[0]; +} +void read_error(void) +{ + __builtin_fprintf(stderr, "\n%s: ", progname); +} + diff --git a/gcc/testsuite/gcc.dg/lto/20100423-2_1.c b/gcc/testsuite/gcc.dg/lto/20100423-2_1.c new file mode 100644 index 000000000000..546de65731b4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/lto/20100423-2_1.c @@ -0,0 +1,20 @@ +typedef unsigned char uch; +uch inbuf[8]; +extern unsigned insize; +unsigned inptr; +int to_stdout = 0; +int force = 0; +extern int fill_inbuf (int); +int get_method(int in) +{ + char magic[2]; + if (force && to_stdout) + magic[0] = (char)(inptr < insize ? inbuf[inptr++] : fill_inbuf(1)); + else + magic[1] = (char)(inptr < insize ? inbuf[inptr++] : fill_inbuf(0)); +} +int main() +{ + return 0; +} +