diff options
author | Zack Weinberg <zack@gcc.gnu.org> | 1999-03-14 09:18:03 +0000 |
---|---|---|
committer | Zack Weinberg <zack@gcc.gnu.org> | 1999-03-14 09:18:03 +0000 |
commit | c2b2e000045ac8a9291c05dafc5f6aec7da47dc2 (patch) | |
tree | 7bad001189b196a13f577553c33055aea082c3f1 /gcc/testsuite/gcc.dg | |
parent | 407f03b8d71c2869f66877df32c9395c8e4fde18 (diff) | |
download | gcc-c2b2e000045ac8a9291c05dafc5f6aec7da47dc2.zip gcc-c2b2e000045ac8a9291c05dafc5f6aec7da47dc2.tar.gz gcc-c2b2e000045ac8a9291c05dafc5f6aec7da47dc2.tar.bz2 |
New test, for spurious "variable may be clobbered by `longjmp' or `vfork'"
warnings.
From-SVN: r25765
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r-- | gcc/testsuite/gcc.dg/setjmp-1.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/setjmp-1.c b/gcc/testsuite/gcc.dg/setjmp-1.c new file mode 100644 index 0000000..85e0fb4 --- /dev/null +++ b/gcc/testsuite/gcc.dg/setjmp-1.c @@ -0,0 +1,36 @@ +/* Test for bogus "variable `x' may be clobbered by longjmp" warnings. + Inspired by cse.c:simplify_relational_operation. */ + +/* { dg-do compile } */ +/* { dg-options "-O -W -Wall" } */ + +#include <setjmp.h> + +extern void set_float_handler (jmp_buf *); + +#define EQ 0x01 +#define LT 0x02 +#define GT 0x04 + +int +compare_float (double a, double b) /* { dg-bogus "clobbered" "spurious clobbered warning" { xfail *-*-* } } */ +{ + jmp_buf handler; + int result; + + a += 1.0; + + if (setjmp (handler)) + { + set_float_handler (0); + return 0; + } + + set_float_handler (&handler); + if (a == b) result = EQ; + else if (a > b) result = LT; + else if (a < b) result = GT; + else result = 0; + set_float_handler (0); + return result; +} |