From be8b04496302184c6e8f04d6179f9c3afc50aeb6 Mon Sep 17 00:00:00 2001 From: YamaArashi Date: Wed, 6 Jan 2016 01:47:28 -0800 Subject: initial commit --- gcc/testsuite/gcc.misc-tests/m-un-1.c | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 gcc/testsuite/gcc.misc-tests/m-un-1.c (limited to 'gcc/testsuite/gcc.misc-tests/m-un-1.c') diff --git a/gcc/testsuite/gcc.misc-tests/m-un-1.c b/gcc/testsuite/gcc.misc-tests/m-un-1.c new file mode 100755 index 0000000..ad84d44 --- /dev/null +++ b/gcc/testsuite/gcc.misc-tests/m-un-1.c @@ -0,0 +1,37 @@ +/* m-un-1.c: "un" for "uninitialized" */ + +/* +From: Jim Wilson +Date: Wed, 6 Jul 1994 13:11:47 -0700 +To: dje@cygnus.com +Subject: Re: devo/gcc ChangeLog.fsf stmt.c +Cc: cvs-gcc@cygnus.com, tege@cygnus.com + + How about a test case? :-) + +Compile with -O -Wall and the broken compiler gives you: +tmp.c:6: warning: `k' might be used uninitialized in this function +The fixed compiler (and gcc 2.5.8) gives no warning. + +This happens to fix a performance regression in the code generated for +while loops, but that is presumably much much harder to test for. +*/ + +/* { dg-do compile } */ +/* { dg-options "-O -Wall" } */ + +int +sub () +{ + int i = 0; + int j = 0; + int k; /* { dg-bogus "`k' might be used uninitialized" "uninitialized warning regression" } */ + + while (i == 0 && j == 0) + { + k = 10; + i = sub (); + } + + return k; +} -- cgit v1.2.3