re PR middle-end/25962 (Pointer (null) check after the use in cgraph.c)
authorJan Hubicka <jh@suse.cz>
Mon, 8 May 2006 21:42:17 +0000 (23:42 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Mon, 8 May 2006 21:42:17 +0000 (21:42 +0000)
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

gcc/ChangeLog
gcc/cgraphunit.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr25962.c [new file with mode: 0644]

index f660c99ec6bc8faa66c0cafc9e0866a59b62626e..e685cdb37529b63502f0b7d5e4c8756bb7afa124 100644 (file)
@@ -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
index 4a7f90e5e7f7cceb842ca4231c82b7669ba87f67..351f5f0caedc10898cc69acd24df122c29bc9145 100644 (file)
@@ -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;
 
index 0911cd99898f306c68a40636cf99b4c0f9512a1e..bd2076bb0edbc9ebcdfd7aad418e2ab87ec47927 100644 (file)
@@ -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 (file)
index 0000000..20ac00e
--- /dev/null
@@ -0,0 +1,6 @@
+/* { dg-do compile } */
+/* { dg-options "-O0" } */
+/* { dg-final { scan-assembler "debug_hook" } } */
+static int debug_hook()
+{
+}