diff options
author | Jan Hubicka <jh@suse.cz> | 2006-05-08 23:42:17 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2006-05-08 21:42:17 +0000 |
commit | 04f77d0f3b194ada4e89a3bf8df3b55bf370fbfa (patch) | |
tree | 20192039e8e9228577157ac0f0ac0de5b704563c /gcc | |
parent | 857e57535196dbb690cf80afadbfda9756417a4b (diff) | |
download | gcc-04f77d0f3b194ada4e89a3bf8df3b55bf370fbfa.zip gcc-04f77d0f3b194ada4e89a3bf8df3b55bf370fbfa.tar.gz gcc-04f77d0f3b194ada4e89a3bf8df3b55bf370fbfa.tar.bz2 |
re PR middle-end/25962 (Pointer (null) check after the use in cgraph.c)
PR middle-end/25962
* cgraphunit.c (decide_is_function_needed): When not optimizing even
unused static functions are needed.
* gcc.dg/pr25962.c: New.
From-SVN: r113633
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cgraphunit.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr25962.c | 6 |
4 files changed, 23 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f660c99..e685cdb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-05-08 Jan Hubicka <jh@suse.cz> + + PR middle-end/25962 + * cgraphunit.c (decide_is_function_needed): When not optimizing even + unused static functions are needed. + 2006-05-08 Roger Sayle <roger@eyesopen.com> PR target/27158 diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 4a7f90e..351f5f0 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -216,8 +216,12 @@ decide_is_function_needed (struct cgraph_node *node, tree decl) return true; /* Externally visible functions must be output. The exception is - COMDAT functions that must be output only when they are needed. */ - if ((TREE_PUBLIC (decl) && !flag_whole_program) + COMDAT functions that must be output only when they are needed. + + When not optimizing, also output the static functions. (see + PR25962) + */ + if (((TREE_PUBLIC (decl) || !optimize) && !flag_whole_program) && !DECL_COMDAT (decl) && !DECL_EXTERNAL (decl)) return true; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0911cd9..bd2076b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-05-08 Jan Hubicka <jh@suse.cz> + + PR middle-end/25962 + * gcc.dg/pr25962.c: New. + 2006-05-08 Roger Sayle <roger@eyesopen.com> PR target/27158 diff --git a/gcc/testsuite/gcc.dg/pr25962.c b/gcc/testsuite/gcc.dg/pr25962.c new file mode 100644 index 0000000..20ac00e --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr25962.c @@ -0,0 +1,6 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ +/* { dg-final { scan-assembler "debug_hook" } } */ +static int debug_hook() +{ +} |