This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Fix PR44150
- From: Richard Guenther <rguenther at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Diego Novillo <dnovillo at google dot com>
- Date: Fri, 12 Nov 2010 13:03:52 +0100 (CET)
- Subject: [PATCH] Fix PR44150
This fixes PR44150, the failure to properly transfer -fexceptions
setting from all TUs to the LTO link stage. It's not easy to
do it in a more clean way as the dwarf machinery is initialized
very early and thus we can't really decide it on a function body
level like we do for non-call-exceptions (if anybody is interested,
I have a non-working patch that tries to do that). Thus, let's
"fixup" the general option handling that was supposed to handle
this (but doesn't cover non-user controlled setting of -fexceptions).
Bootstrapped and tested on x86_64-unknown-linux-gnu, ok?
Yes, the option handling needs a complete rewrite, but I'd rather
have this bug fixed than betting on the chance to have the rewrite
done for 4.6.
Thanks,
Richard.
2010-11-11 Richard Guenther <rguenther@suse.de>
PR lto/44150
* lto-opts.c (lto_write_options): Write -fexceptions even if
set not by the user.
Index: gcc/lto-opts.c
===================================================================
*** gcc/lto-opts.c (revision 166597)
--- gcc/lto-opts.c (working copy)
*************** lto_write_options (void)
*** 299,304 ****
--- 299,311 ----
struct lto_simple_header header;
struct lto_output_stream *header_stream;
+ /* Targets and languages can provide defaults for -fexceptions but
+ we only process user options from the command-line. Until we
+ serialize out a whitelist of options from the new global state
+ explicitly append important options as user options here. */
+ if (flag_exceptions)
+ lto_register_user_option (OPT_fexceptions, NULL, 1, CL_COMMON);
+
lto_begin_section (section_name, !flag_wpa);
free (section_name);