On Tue, Jan 17, 2012 at 3:35 AM, Richard Guenther
<richard.guent...@gmail.com> wrote:
> On Mon, Jan 16, 2012 at 10:29 PM, Jason Merrill <ja...@redhat.com> wrote:
>> When outputting PCH/LTO, the compiler tries to generate mangled names for
>> all decls before discarding language-specific data.  But that doesn't make
>> sense for templates, and leads to conflicts in this case. Fixed by refusing
>> to mangle templates.
>>
>> Tested x86_64-pc-linux-gnu, applying to trunk.
>
> Hmm.  Using -flto when generating a precompiled header doesn't make sense.
> We probably should drop -flto silently or complain here.  Thus,
>
> Index: c-family/c-opts.c
> ===================================================================
> --- c-family/c-opts.c   (revision 183205)
> +++ c-family/c-opts.c   (working copy)
> @@ -1058,6 +1058,13 @@ c_common_post_options (const char **pfil
>       && flag_preprocess_only && !flag_no_line_commands)
>     pp_dir_change (parse_in, get_src_pwd ());
>
> +  /* Disable LTO output when outputting a precompiled header.  */
> +  if (pch_file && flag_lto)
> +    {
> +      flag_lto = 0;
> +      flag_generate_lto = 0;
> +    }
> +
>   return flag_preprocess_only;
>  }
>
> any objection to that?

I think we should issue a diagnostic about the combination of these
two flags.  Silent ignorance would lead to false user expectations
and supposed "bug" reports, if not confusion.

-- Gaby

Reply via email to