[clang] 246398e - [clang][Parse] properly parse asm-qualifiers, asm inline

Nick Desaulniers via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 13 11:39:11 PDT 2020


On Sun, Apr 12, 2020 at 3:45 PM Joerg Sonnenberger <joerg at bec.de> wrote:
>
> On Thu, Mar 12, 2020 at 03:25:49PM -0700, Nick Desaulniers via cfe-commits wrote:
> >
> > Author: Nick Desaulniers
> > Date: 2020-03-12T15:13:59-07:00
> > New Revision: 246398ece7115b57a02dbe7876d86ae8e72406ef
> >
> > URL: https://github.com/llvm/llvm-project/commit/246398ece7115b57a02dbe7876d86ae8e72406ef
> > DIFF: https://github.com/llvm/llvm-project/commit/246398ece7115b57a02dbe7876d86ae8e72406ef.diff
> >
> > LOG: [clang][Parse] properly parse asm-qualifiers, asm inline
> >
> > Summary:
> > The parsing of GNU C extended asm statements was a little brittle and
> > had a few issues:
>
> I find it very questionable that this change drops a warning flag making
> IMO benign code differences like marking a global asm as volatile an
> unconditional error. This strongly seems to be something that we
> shouldn't blindly follow GCC on.

We can always bring them back.  Now that we can parse asm statements
correctly, I think we could even unify asm parsing (there's one spot
that parses asm expressions again, but without looking for the asm
qualifiers (parseAsmSimple() IIRC).  Then you could pass in whether
the qualifiers should be ignored and warn on or not.

-Wasm-file-asm-volatile was certainly too specific to `volatile`, but
it makes sense to bring back `-Wasm-ignored-qualifier` for asm
qualifiers (previously it warned for unrelated type qualifiers, which
I'm quite certain wasn't very helpful).
-- 
Thanks,
~Nick Desaulniers


More information about the cfe-commits mailing list