Re: Remaining randconfig objtool warnings, linux-next-20200428

From: Arnd Bergmann
Date: Fri May 01 2020 - 15:47:38 EST


On Fri, May 1, 2020 at 7:50 PM Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
>
> On Fri, May 01, 2020 at 07:26:16PM +0200, Peter Zijlstra wrote:
> > On Fri, May 01, 2020 at 07:21:31PM +0200, Arnd Bergmann wrote:
> > > On Thu, Apr 30, 2020 at 4:05 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> > > it gets into undefined behavior and stops emitting code after the call to
> >
> > > Do we consider this expected behavior on gcc's side, or is it something
> > > that should not happen and needs a gcc bug report?
> >
> > When it hits UB it is of course free to do whatever it damn well
> > pleases, but just stopping code gen seems a little extreme, at least
> > issue a WARN that something is up or so.
> >
> > Not sure how the GCC folks feel about this though.
>
> When we've seen truncated code flow like this in the past, it's either
> been a code bug (undefined behavior) or a GCC bug. So this is new.
>
> Is it only seen with GCC_PLUGIN_SANCOV enabled? Maybe (hopefully) it's
> an issue with the plugin and how it interacts with GCC 10.

This is not the plugin but the built-in -fsanitize-coverage=trace-pc. With
the reduced test case, I can also reproduce it on gcc-9.2 and gcc-9.3 but
not on gcc-8.4.

So far I have not been able to reproduce it without
-fsanitize-coverage=trace-pc,
as the automated creduce tends to run off into undefined behavior unless
I tell it to ignore runs that produce the objtool warning without the
-fsanitize-coverage=trace-pc flag.

Arnd