aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto-opts.c
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2013-11-04 20:29:36 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2013-11-04 20:29:36 +0000
commit2a5145b0dd7f1e10431c6d93c8cc9848cef1e6a3 (patch)
tree06fe2ff33f0ba57dffa554db3bb664aa5c227ed2 /gcc/lto-opts.c
parentb96d19ffd05a88333a2ec56f06b68fede6e353b0 (diff)
downloadgcc-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.c9
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];