diff options
author | Richard Guenther <rguenther@suse.de> | 2010-04-23 15:32:22 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-04-23 15:32:22 +0000 |
commit | 7a38245d60291e0b41f565dc9a9ea6bc96bb933e (patch) | |
tree | 03b3f5069d9a9a5e33ea30e7bae9db19aee3f11e /gcc | |
parent | 8fd8a06f0ed4378f8d5cc97994c7bf0e6e397461 (diff) | |
download | gcc-7a38245d60291e0b41f565dc9a9ea6bc96bb933e.zip gcc-7a38245d60291e0b41f565dc9a9ea6bc96bb933e.tar.gz gcc-7a38245d60291e0b41f565dc9a9ea6bc96bb933e.tar.bz2 |
re PR middle-end/41734 (ICE in cgraph_mark_functions_to_output, at cgraphunit.c:1137 with -fwhopr)
2010-04-23 Richard Guenther <rguenther@suse.de>
PR lto/41734
* gcc.dg/lto/20100423-2_0.c: New testcase.
* gcc.dg/lto/20100423-2_0.c: Likewise.
From-SVN: r158670
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/lto/20100423-2_0.c | 25 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/lto/20100423-2_1.c | 20 |
3 files changed, 51 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 28b1201..dacc10e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,11 @@ 2010-04-23 Richard Guenther <rguenther@suse.de> + 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 <rguenther@suse.de> + PR lto/43455 * gcc.dg/lto/20100423-1_0.c: New testcase. * gcc.dg/lto/20100423-1_1.c: Likewise. 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 0000000..4f98da4 --- /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 0000000..546de65 --- /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; +} + |