diff options
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20020319-1.c | 20 |
2 files changed, 22 insertions, 2 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f6ae9905..1ac5650 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -2,6 +2,8 @@ * gcc.dg/20020312-2.c: Add rs6000 target. + * gcc.c-torture/compile/20020319-1.c: New test. + 2002-03-21 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> * g++.old-deja/g++.eh/ia64-1.C: Use [ijkl]_[0-9] as variable names. @@ -24,8 +26,6 @@ * gcc.dg/struct-by-value-1.c: New test. - * gcc.c-torture/compile/20020319-1.c: New test. - 2002-03-18 Jakub Jelinek <jakub@redhat.com> * g++.dg/opt/conj1.C: New test. diff --git a/gcc/testsuite/gcc.c-torture/compile/20020319-1.c b/gcc/testsuite/gcc.c-torture/compile/20020319-1.c new file mode 100644 index 0000000..be5b9c2 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20020319-1.c @@ -0,0 +1,20 @@ +/* This testcase ICEd in combine.c:do_SUBST() self-test for sign-extended +CONST_INT because expr.c:expand_expr() was not sign-extending array index +into constant strings. */ + +typedef unsigned char uch; +extern uch outbuf[]; +extern unsigned outcnt; + +extern void flush_outbuf (void); + +int zip(void) +{ + outcnt = 0; + + {outbuf[outcnt++]=(uch)("\037\213"[0]); if (outcnt==16384) flush_outbuf();}; + {outbuf[outcnt++]=(uch)("\037\213"[1]); if (outcnt==16384) flush_outbuf();}; + + return 0; +} + |