https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92860

--- Comment #57 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to David Binderman from comment #56)
> (In reply to Martin Liška from comment #55)
> > > 
> > > with line numbers please :)
> > 
> > cat -n can do that
> 
> Sorry, I went a bit hard-of-thinking there. 
> 
>  13029  void
>  13030  cl_optimization_compare (gcc_options *ptr1, gcc_options *ptr2)
>  13031  {
>  13032    if (ptr1->x_help_flag != ptr2->x_help_flag)
>  13033      internal_error ("%<global_options%> are modified in local
> context");
>  13034    if (ptr1->x_no_sysroot_suffix != ptr2->x_no_sysroot_suffix)
>  13035      internal_error ("%<global_options%> are modified in local
> context");
>  13036    if (ptr1->x_param_align_loop_iterations !=
> ptr2->x_param_align_loop_iterations)
>  13037      internal_error ("%<global_options%> are modified in local
> context");
>  13038    if (ptr1->x_param_align_threshold != ptr2->x_param_align_threshold)
>  13039      internal_error ("%<global_options%> are modified in local
> context");
>  13040    if (ptr1->x_param_analyzer_bb_explosion_factor !=
> ptr2->x_param_analyzer_bb_explosion_factor)
>  13041      internal_error ("%<global_options%> are modified in local
> context");
>  13042    if (ptr1->x_param_analyzer_max_constraints !=
> ptr2->x_param_analyzer_max_constraints)
>  13043      internal_error ("%<global_options%> are modified in local
> context");
> 
> So the first test is failing.

Hm, that's super-weird. It should be 0 for both of them. Can you please build
options-save.c with -O0 and debug it:

(gdb) b cl_optimization_compare
(gdb) p ptr1->x_help_flag
$1 = 0
(gdb) p ptr2->x_help_flag
$2 = 0

and then put a watch for the value that is non-zero:
(gdb) p &ptr1->x_help_flag
$3 = (int *) 0x26c87d0
(gdb) watch *$3
Hardware watchpoint 4: *$3
(gdb) r
Old value = <unreadable>
New value = 0
handle_pragma_push_options (dummy=<optimized out>) at
/home/marxin/Programming/gcc/gcc/c-family/c-pragma.c:1041
1041          *p->saved_global_options = global_options;
(gdb) c

Reply via email to