This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix up __builtin_setjmp_receiver handling (PR c++/60082, take 2)


On Thu, Feb 06, 2014 at 11:00:14AM +0100, Richard Biener wrote:
> Ah, so __builtin_setjmp_receiver is like setjmp in this regard
> and setjmp is LEAF (it's a stmt that doesn't direct control-flow
> anywhere else).  So __builtin_setjmp_receiver should be LEAF as well
> (and so should __builtin_setjmp_setup).
> 
> Doesn't sound dangerous at all to me ...

This passed bootstrap/regtest and fixed the timeouts too.  Ok for trunk?

2014-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR c++/60082
	* tree.c (build_common_builtin_nodes): Set ECF_LEAF for
	__builtin_setjmp_receiver.

	Revert
	2014-02-05  Balaji V. Iyer  <balaji.v.iyer@intel.com>

	* g++.dg/cilk-plus/CK/catch_exc.cc: Disable test for -O1.
	* c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise.

--- gcc/tree.c.jj	2014-02-04 10:30:15.010121513 +0100
+++ gcc/tree.c	2014-02-06 17:03:49.034656060 +0100
@@ -9980,7 +9980,7 @@ build_common_builtin_nodes (void)
   ftype = build_function_type_list (void_type_node, ptr_type_node, NULL_TREE);
   local_define_builtin ("__builtin_setjmp_receiver", ftype,
 			BUILT_IN_SETJMP_RECEIVER,
-			"__builtin_setjmp_receiver", ECF_NOTHROW);
+			"__builtin_setjmp_receiver", ECF_NOTHROW | ECF_LEAF);
 
   ftype = build_function_type_list (ptr_type_node, NULL_TREE);
   local_define_builtin ("__builtin_stack_save", ftype, BUILT_IN_STACK_SAVE,
--- gcc/testsuite/g++.dg/cilk-plus/CK/catch_exc.cc	(revision 207519)
+++ gcc/testsuite/g++.dg/cilk-plus/CK/catch_exc.cc	(revision 207518)
@@ -1,7 +1,6 @@
 /* { dg-options "-fcilkplus" } */
 /* { dg-do run { target i?86-*-* x86_64-*-* arm*-*-* } } */
 /* { dg-options "-fcilkplus -lcilkrts" { target { i?86-*-* x86_64-*-* arm*-*-* } } } */
-/* { dg-skip-if "" { *-*-* } { "-O1" } { "" } } */
 
 #include <assert.h>
 #include <unistd.h>
--- gcc/testsuite/c-c++-common/cilk-plus/CK/spawner_inline.c	(revision 207519)
+++ gcc/testsuite/c-c++-common/cilk-plus/CK/spawner_inline.c	(revision 207518)
@@ -1,7 +1,6 @@
 /* { dg-do run  { target { i?86-*-* x86_64-*-* } } } */
 /* { dg-options "-fcilkplus" } */
 /* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
-/* { dg-skip-if "" { *-*-* } { "-O1" } { "" } } */
 
 #include <stdlib.h>
 #define DEFAULT_VALUE 30

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]