diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2014-07-14 00:12:54 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2014-07-13 22:12:54 +0000 |
commit | 893306188659dafdd4fe386235039b0ec4b8c4c8 (patch) | |
tree | 205f9c439effd6b0b1d8538404e92216504a3f4c /gcc/testsuite | |
parent | 69dc8208ee905dbc2a6d04faa4cec7211874745e (diff) | |
download | gcc-893306188659dafdd4fe386235039b0ec4b8c4c8.zip gcc-893306188659dafdd4fe386235039b0ec4b8c4c8.tar.gz gcc-893306188659dafdd4fe386235039b0ec4b8c4c8.tar.bz2 |
cgraph.h (symtab_node): Add nonzero_address.
* cgraph.h (symtab_node): Add nonzero_address.
(decl_in_symtab_p): Break out from ...
(symtab_get_node): ... here.
* fold-const.c: Include cgraph.h
(tree_single_nonzero_warnv_p): Use symtab to determine
if symbol is non-zero.
* symtab.c (symtab_node::nonzero_address): New method.
* gcc.dg/pr36901.h: Simplify because non-zero symbol folding no
longer happens during parsing.
* gcc.dg/pr44024.c: Update template.
* g++.dg/tree-ssa/nonzero-2.C: New testcase.
* g++.dg/tree-ssa/nonzero-1.C: New testcase.
* gcc.dg/tree-ssa/nonzero-1.c: New testcase.
From-SVN: r212499
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/tree-ssa/nonzero-1.C | 12 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/tree-ssa/nonzero-2.C | 16 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr36901.h | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr44024.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/nonzero-1.c | 11 |
6 files changed, 51 insertions, 7 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 43adb47..be579b6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2014-07-13 Jan Hubicka <hubicka@ucw.cz> + + * gcc.dg/pr36901.h: Simplify because non-zero symbol folding no + longer happens during parsing. + * gcc.dg/pr44024.c: Update template. + * g++.dg/tree-ssa/nonzero-2.C: New testcase. + * g++.dg/tree-ssa/nonzero-1.C: New testcase. + * gcc.dg/tree-ssa/nonzero-1.c: New testcase. + 2014-07-13 Tom de Vries <tom@codesourcery.com> * gcc.target/i386/fuse-caller-save-xmm-run.c: New test. diff --git a/gcc/testsuite/g++.dg/tree-ssa/nonzero-1.C b/gcc/testsuite/g++.dg/tree-ssa/nonzero-1.C new file mode 100644 index 0000000..60da49d --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/nonzero-1.C @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-ccp1" } */ +inline void t() +{ +} +int m() +{ + void *q = (void *)&t; + return q != 0; +} +/* { dg-final { scan-tree-dump "return 1" "ccp1"} } */ +/* { dg-final { cleanup-tree-dump "ccp1" } } */ diff --git a/gcc/testsuite/g++.dg/tree-ssa/nonzero-2.C b/gcc/testsuite/g++.dg/tree-ssa/nonzero-2.C new file mode 100644 index 0000000..fdf4114 --- /dev/null +++ b/gcc/testsuite/g++.dg/tree-ssa/nonzero-2.C @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-ccp1 -fdelete-null-pointer-checks" } */ +struct t +{ + static inline void tt() + { + } + virtual void q(); +}; +int m() +{ + void *q = (void *)&t::tt; + return q != 0; +} +/* { dg-final { scan-tree-dump "return 1" "ccp1"} } */ +/* { dg-final { cleanup-tree-dump "ccp1" } } */ diff --git a/gcc/testsuite/gcc.dg/pr36901.h b/gcc/testsuite/gcc.dg/pr36901.h index 6022732..cf61c99 100644 --- a/gcc/testsuite/gcc.dg/pr36901.h +++ b/gcc/testsuite/gcc.dg/pr36901.h @@ -1,6 +1,2 @@ -#if defined(AVR) /* flag_delete_null_pointer_checks = 0 */ int sc = (&sc >= 0); -#else -int sc = (&sc > 0); -#endif diff --git a/gcc/testsuite/gcc.dg/pr44024.c b/gcc/testsuite/gcc.dg/pr44024.c index f5d72d5..740d04d 100644 --- a/gcc/testsuite/gcc.dg/pr44024.c +++ b/gcc/testsuite/gcc.dg/pr44024.c @@ -1,5 +1,5 @@ /* { dg-do link } */ -/* { dg-options "-fdelete-null-pointer-checks -fdump-tree-original" } */ +/* { dg-options "-fdelete-null-pointer-checks -fdump-tree-ccp1" } */ void foo(); @@ -10,5 +10,5 @@ int main() return 0; } -/* { dg-final { scan-tree-dump-not "foo" "original" { target { ! avr*-*-* } } } } */ -/* { dg-final { cleanup-tree-dump "original" } } */ +/* { dg-final { scan-tree-dump-not "foo" "ccp1" { target { ! avr*-*-* } } } } */ +/* { dg-final { cleanup-tree-dump "ccp1" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/nonzero-1.c b/gcc/testsuite/gcc.dg/tree-ssa/nonzero-1.c new file mode 100644 index 0000000..c79811b --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/nonzero-1.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ +extern int a; +t() +{ + return &a!=0; +} +extern int a __attribute__ ((weak)); + +/* { dg-final { scan-tree-dump-not "return 1" "optimized"} } */ +/* { dg-final { cleanup-tree-dump "optimized" } } */ |