[llvm] [TableGen] Detect invalid -D arguments and fail. (PR #102813)

Rahul Joshi via llvm-commits llvm-commits at lists.llvm.org
Sun Aug 11 15:44:26 PDT 2024


================
@@ -42,6 +42,25 @@ struct {
   { tgtok::Endif, "endif" },
   { tgtok::Define, "define" }
 };
+
+// Returns true if `MacroName` is a valid macro name. Valid macro names match
+// the regular expression [a-zA-Z_][0-9a-zA-Z_]* (see prepLexMacroName).
+bool IsValidMacroName(StringRef MacroName) {
+  if (MacroName.size() == 0)
+    return false;
+
+  char First = MacroName[0];
+  if (First != '_' && !isalpha(First))
+    return false;
+
+  // Match the rest of the identifier regex: [0-9a-zA-Z_]*
+  for (char Rest : MacroName.drop_front())
+    if (Rest != '_' && !isalpha(Rest) && !isdigit(Rest))
+      return false;
+
+  return true;
+}
+
 } // end anonymous namespace
----------------
jurahul wrote:

Done.

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


More information about the llvm-commits mailing list