On February 6, 2015 9:26:29 PM CET, Jakub Jelinek <ja...@redhat.com> wrote: >Hi! > >As mentioned in the PR, the problem here is that the Ada FE needs to >modify >global_options after toplevel.c (process_options), but as for LTO we >now use >optimization_{default,current}_node for options of functions without >specifial optimization node, it means the changed options aren't >reflected >in there. > >Fixed thusly, bootstrapped/regtested on x86_64-linux, ok for trunk?
Can't ada use one of the option processing langhooks or represent this change similar to optimization pragmas in other frontends? Richard. >2015-02-06 Jakub Jelinek <ja...@redhat.com> > > PR middle-end/64340 > * gcc-interface/trans.c (gigi): Recreate optimization_default_node > and optimization_current_node after tweaking global_options. > >--- gcc/ada/gcc-interface/trans.c.jj 2015-01-12 18:56:10.000000000 >+0100 >+++ gcc/ada/gcc-interface/trans.c 2015-02-06 16:39:04.353363393 +0100 >@@ -678,6 +678,11 @@ gigi (Node_Id gnat_root, > if (No_Strict_Aliasing_CP) > flag_strict_aliasing = 0; > >+ /* Save the current optimization options again after the above >possible >+ global_options changes. */ >+ optimization_default_node = build_optimization_node >(&global_options); >+ optimization_current_node = optimization_default_node; >+ > /* Now translate the compilation unit proper. */ > Compilation_Unit_to_gnu (gnat_root); > > > Jakub