Re: [PATCH 00/22] x86, objtool: several fixes/improvements

From: Nick Desaulniers
Date: Fri Sep 27 2019 - 16:25:06 EST


On Thu, Jul 18, 2019 at 3:26 PM Nick Desaulniers
<ndesaulniers@xxxxxxxxxx> wrote:
>
> On Tue, Jul 16, 2019 at 4:17 PM Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
> >
> > > > > 2) There's also an issue in clang where a large switch table had a bunch
> > > > > of unused (bad) entries. It's not a code correctness issue, but
> > > > > hopefully it can get fixed in clang anyway. See patch 20/22 for more
> > > > > details.
> > >
> > > Thanks for the report, let's follow up on steps for me to reproduce.
> >
> > Just to clarify, there are two clang issues. Both of them were reported
> > originally by Arnd, IIRC.
> >
> > 1) The one described above and in patch 20, where the switch table is
> > mostly unused entries. Not a real bug, but it's a bit sloppy and
> > wasteful, and objtool doesn't know how to interpret it.
>
> Thanks for the concise reports. Will follow up on these in:
> https://github.com/ClangBuiltLinux/linux/issues/611

Following up on this one; in one of the test cases we determined that
the default destination of an exhaustive switch wasn't getting cleaned
up properly, and is being fixed in:
https://reviews.llvm.org/D68131
https://bugs.llvm.org/show_bug.cgi?id=43129
I'm not sure that was the precise issue you described, or if there's
more than one bug here, but hopefully it will help.

>
> >
> > 2) The bug with the noreturn call site having a different stack size
> > depending on which code path was taken.
>
> and:
> https://github.com/ClangBuiltLinux/linux/issues/612
--
Thanks,
~Nick Desaulniers