On Tue, Dec 06, 2016 at 03:55:54PM -0600, Segher Boessenkool wrote:
> On Tue, Dec 06, 2016 at 03:23:06PM -0600, Bill Seurer wrote:
> > 2016-12-06 Bill Seurer <[email protected]>
> >
> > PR sanitizer/65479
> > * gcc/config/rs6000/rs6000.c: Add -fasynchronous-unwind-tables option
> > when
> > -fsanitize=address is specified.
>
> You should mention the function name here.
And not use the gcc/ prefix in the filename.
> > --- gcc/config/rs6000/rs6000.c (revision 243308)
> > +++ gcc/config/rs6000/rs6000.c (working copy)
> > @@ -5204,6 +5204,11 @@ rs6000_option_override (void)
> > {
> > (void) rs6000_option_override_internal (true);
> >
> > + /* -fsanitize=address needs to turn on -fasynchronous-unwind-tables for
> > + ppc64 in order for tracebacks to be complete. */
> > + if (global_options.x_flag_sanitize & SANITIZE_USER_ADDRESS)
> > + global_options.x_flag_asynchronous_unwind_tables = 1;
>
> Do you need to check if the user specified -fno-asynchronous-unwind-tables
> here, and then not do this? I.e. similar to the rs6000_isa_flags_explicit
> handling (in the _internal function).
Why are you changing it here and not in the *_internal function?
Why do you use global_options.x_* instead of just *?
And Segher has a point, it should be likely:
if ((flag_sanitize & SANITIZE_USER_ADDRESS)
&& !global_options_set.x_flag_asynchronous_unwind_tables)
flag_asynchronous_unwind_tables = 1;
Jakub