tree.c (initializer_zerop): Add test for empty set.
authorWaldek Hebisch <hebisch@math.uni.wroc.pl>
Mon, 15 Dec 2003 14:45:51 +0000 (15:45 +0100)
committerAndreas Jaeger <aj@gcc.gnu.org>
Mon, 15 Dec 2003 14:45:51 +0000 (15:45 +0100)
2003-12-15  Waldek Hebisch  <hebisch@math.uni.wroc.pl>

* tree.c (initializer_zerop): Add test for empty set.
* integrate.c (function_cannot_inline_p): Forbid inlining
functions calling `longjmp'.

From-SVN: r74633

gcc/ChangeLog
gcc/integrate.c
gcc/tree.c

index bde0cc0..5778a93 100644 (file)
@@ -1,3 +1,9 @@
+2003-12-15  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
+
+       * tree.c (initializer_zerop): Add test for empty set.
+       * integrate.c (function_cannot_inline_p): Forbid inlining
+       functions calling `longjmp'.
+
 2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
 
        PR c++/11773
@@ -62,7 +68,7 @@
        (ggc_collect_1): Always mark and sweep if a zone has the `dead'
        flag set.
        (ggc_collect): Free dead zones after collecting.
+
 2003-12-13  Jan Hubicka  <jh@suse.cz>
 
        * coverage.c (get_coverage_counts):  Use inform instead of warning
index fa5d71e..f317627 100644 (file)
@@ -172,6 +172,9 @@ function_cannot_inline_p (tree fndecl)
   if (current_function_calls_alloca)
     return N_("function using alloca cannot be inline");
 
+  if (current_function_calls_longjmp)
+    return N_("function using longjmp cannot be inline");
+  
   if (current_function_calls_setjmp)
     return N_("function using setjmp cannot be inline");
 
index 8466990..52faeaf 100644 (file)
@@ -5011,6 +5011,11 @@ initializer_zerop (tree init)
            && ! REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (TREE_IMAGPART (init))));
     case CONSTRUCTOR:
       {
+       /* Set is empty if it has no elements.  */
+        if ((TREE_CODE (TREE_TYPE (init)) == SET_TYPE)
+             && CONSTRUCTOR_ELTS (init))
+         return false;
+
        if (AGGREGATE_TYPE_P (TREE_TYPE (init)))
          {
            tree aggr_init = CONSTRUCTOR_ELTS (init);