summaryrefslogtreecommitdiff
path: root/gcc/builtins.def
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-04 20:29:36 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-04 20:29:36 +0000
commit8eabe518838bd3fdbac008e1f5b8aea2e9d202cc (patch)
tree06fe2ff33f0ba57dffa554db3bb664aa5c227ed2 /gcc/builtins.def
parent833c71b00710ec65bcda7db60be50101a6a42e72 (diff)
downloadgcc-8eabe518838bd3fdbac008e1f5b8aea2e9d202cc.tar.gz
gcc/:
* builtins.def (ATTR_NOTHROWCALL_LEAF_LIST): Define. * sync-builtins.def: Use ATTR_NOTHROWCALL_LEAF_LIST for all sync builtins that take pointers. * lto-opts.c (lto_write_options): Write -fnon-call-exceptions if set. * lto-wrapper.c (merge_and_complain): Collect OPT_fnon_call_exceptions. (run_gcc): Pass -fnon-call-exceptions. gcc/testsuite/: * g++.dg/ext/sync-4.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204360 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/builtins.def')
-rw-r--r--gcc/builtins.def6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/builtins.def b/gcc/builtins.def
index e2d8849c768..3082548731d 100644
--- a/gcc/builtins.def
+++ b/gcc/builtins.def
@@ -213,6 +213,12 @@ along with GCC; see the file COPYING3. If not see
#undef ATTR_MATHFN_FPROUNDING_STORE
#define ATTR_MATHFN_FPROUNDING_STORE ATTR_NOTHROW_LEAF_LIST
+/* Define an attribute list for leaf functions that do not throw
+ exceptions normally, but may throw exceptions when using
+ -fnon-call-exceptions. */
+#define ATTR_NOTHROWCALL_LEAF_LIST (flag_non_call_exceptions ? \
+ ATTR_LEAF_LIST : ATTR_NOTHROW_LEAF_LIST)
+
/* Make sure 0 is not a legitimate builtin. */
DEF_BUILTIN_STUB(BUILT_IN_NONE, (const char *)0)