[clang] [Attributes] Support Attributes being declared as supporting an experimental late parsing mode "extension" (PR #88596)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Tue Apr 23 10:34:49 PDT 2024


================
@@ -220,8 +230,28 @@ void Parser::ParseGNUAttributes(ParsedAttributes &Attrs,
         continue;
       }
 
+      bool LateParse = false;
+      if (!LateAttrs)
+        LateParse = false;
+      else {
+        if (LateAttrs->lateAttrParseExperimentalExtOnly()) {
+          // The caller requested that this attribute **only** be late
+          // parsed for `LateAttrParseExperimentalExt` attributes. This will
+          // only be late parsed if the experimental language option is enabled.
+          LateParse = IsAttributeLateParsedExperimentalExt(*AttrName) &&
+                      getLangOpts().ExperimentalLateParseAttributes;
----------------
AaronBallman wrote:

Check the lang option first as that's going short-circuit more quickly?

https://github.com/llvm/llvm-project/pull/88596


More information about the cfe-commits mailing list