diff options
author | Ian Lance Taylor <iant@google.com> | 2013-11-04 20:29:36 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2013-11-04 20:29:36 +0000 |
commit | 2a5145b0dd7f1e10431c6d93c8cc9848cef1e6a3 (patch) | |
tree | 06fe2ff33f0ba57dffa554db3bb664aa5c227ed2 /gcc/lto-opts.c | |
parent | b96d19ffd05a88333a2ec56f06b68fede6e353b0 (diff) | |
download | gcc-2a5145b0dd7f1e10431c6d93c8cc9848cef1e6a3.zip gcc-2a5145b0dd7f1e10431c6d93c8cc9848cef1e6a3.tar.gz gcc-2a5145b0dd7f1e10431c6d93c8cc9848cef1e6a3.tar.bz2 |
builtins.def (ATTR_NOTHROWCALL_LEAF_LIST): Define.
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.
From-SVN: r204360
Diffstat (limited to 'gcc/lto-opts.c')
-rw-r--r-- | gcc/lto-opts.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/lto-opts.c b/gcc/lto-opts.c index 0a63f89..c9d4e03 100644 --- a/gcc/lto-opts.c +++ b/gcc/lto-opts.c @@ -77,7 +77,7 @@ lto_write_options (void) obstack_init (&temporary_obstack); - /* Output options that affect GIMPLE IL semantics and are implicitely + /* Output options that affect GIMPLE IL semantics and are implicitly enabled by the frontend. This for now includes an explicit set of options that we also handle explicitly in lto-wrapper.c. In the end the effects on GIMPLE IL @@ -88,8 +88,13 @@ lto_write_options (void) if (global_options.x_flag_exceptions) append_to_collect_gcc_options (&temporary_obstack, &first_p, "-fexceptions"); + /* -fnon-call-exceptions changes the generation of exception + regions. It is enabled implicitly by the Go frontend. */ + if (global_options.x_flag_non_call_exceptions) + append_to_collect_gcc_options (&temporary_obstack, &first_p, + "-fnon-call-exceptions"); - /* Output explicitely passed options. */ + /* Output explicitly passed options. */ for (i = 1; i < save_decoded_options_count; ++i) { struct cl_decoded_option *option = &save_decoded_options[i]; |