[PATCH] D119061: [Clang] noinline call site attribute

Dávid Bolvanský via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Feb 25 05:16:00 PST 2022


xbolva00 added inline comments.


================
Comment at: clang/include/clang/Basic/Attr.td:1764
+def NoInline : DeclOrStmtAttr {
+  let Spellings = [Clang<"noinline">, Declspec<"noinline">];
+  let Documentation = [NoInlineDocs];
----------------
aaron.ballman wrote:
> xbolva00 wrote:
> > What I need to mention here. With Clang<"noinline">, we lost support for [[gnu::noinline]] syntax, now unrecognized. Maybe it is ok, as we have now more powerful attribute?
> > 
> > 
> Nope, we need to retain at least part of `GCC<"noinline">` because people may be relying on `[[gnu::noinline]]`. The GNU version should be disallowed as a statement attribute unless GCC gets the same functionality. I suspect using the `GCC` spelling may cause issues (because GCC spelling implies a GNU attribute as does the Clang spelling). So you may need to use `CXX11<"gnu", "noinline">` and `C2x<"gnu", "noinline">` to retain those spellings.
> 
> Btw, you can use an `Accessors` field here to give the semantic attribute the ability to differentiate between the GCC and the Clang spellings. The GNU spelling is a bit of a question mark; I think it's fine to allow it as a statement attribute, but we might want to warn that the use is not compatible with GCC.
> 
> You'll have to update the documentation to describe what's supported where and under which spelling.
Thanks for advices, Accessors is really useful here. Added warning and updated doc a bit.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119061/new/

https://reviews.llvm.org/D119061



More information about the cfe-commits mailing list