OSDN Git Service

* tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
[pf3gnuchains/gcc-fork.git] / gcc / tree.c
index 9dbd084..3c456a2 100644 (file)
@@ -9083,10 +9083,13 @@ build_common_builtin_nodes (void)
       tmp = tree_cons (NULL_TREE, size_type_node, void_list_node);
       ftype = build_function_type (ptr_type_node, tmp);
       local_define_builtin ("__builtin_alloca", ftype, BUILT_IN_ALLOCA,
-                           "alloca",
-                           ECF_MALLOC | (flag_stack_check ? 0 : ECF_NOTHROW));
+                           "alloca", ECF_MALLOC | ECF_NOTHROW);
     }
 
+  /* If we're checking the stack, `alloca' can throw.  */
+  if (flag_stack_check)
+    TREE_NOTHROW (built_in_decls[BUILT_IN_ALLOCA]) = 0;
+
   tmp = tree_cons (NULL_TREE, ptr_type_node, void_list_node);
   tmp = tree_cons (NULL_TREE, ptr_type_node, tmp);
   tmp = tree_cons (NULL_TREE, ptr_type_node, tmp);