On Sun, Nov 13, 2016 at 11:31 PM, Eric Botcazou <ebotca...@adacore.com> wrote: > It's the note issued by the -Wlto-type-mismatch warning: > > q.ads:7:13: warning: type of 'q__proc' does not match original declaration [- > Wlto-type-mismatch] > procedure Proc (A : Arr); > ^ > q.adb:7:3: note: 'q__proc' was previously declared here > procedure Proc (A : Arr) is begin null; end; > ^ > q.adb:7:3: note: code may be misoptimized unless -fno-strict-aliasing is used > > and it's a bit surprising that -fno-strict-aliasing cannot silence it.
The issue is that we can have different -fstrict-aliasing status on different functions (from individual TUs). I'm not sure if a -fno-strict-aliasing at link/WPA time will put them to that state. > Tested on x86_64-suse-linux, OK for the mainline and 6 branch? Can you verify that a TU compiled with -fstrict-aliasing will link as if -fno-strict-aliasing if -fno-strict-aliasing is specified at link time? We're also still in a very weird state of fixing TU compile flags via the optimize/target attribute to link time while at the same time still going through lto-opts.c and lto-wrapper "merging" of those options. That said, -Wno-lto-type-mismatch can be used to disable the warning as well. Thanks, Richard. > > 2016-11-13 Eric Botcazou <ebotca...@adacore.com> > > lto/ > * lto-symtab.c (lto_symtab_merge_decls_2): Only issue note on strict > aliasing if -fstrict-aliasing is enabled. > > -- > Eric Botcazou