================
@@ -80,6 +80,20 @@ void MacroUsageCheck::warnMacro(const MacroDirective *MD, 
StringRef MacroName) {
   const MacroInfo *Info = MD->getMacroInfo();
   StringRef Message;
 
+  for (const auto &T : MD->getMacroInfo()->tokens()) {
+    if (T.is(tok::hash)) {
+      return;
+    }
+    if (T.is(tok::identifier)) {
+      StringRef IdentName = T.getIdentifierInfo()->getName();
+      if (IdentName == "__FILE__") {
+        return;
+      } else if (IdentName == "__LINE__") {
+        return;
+      }
+    }
+  }
+
----------------
PiotrZSL wrote:

Yes, probably easiest option would be simply to add config option like 
IgnoreMacrosThatUse, or something similar, make it regexp, and then add release 
note entry that "Macros that use directly an built-in macros are ignored". If 
you dont want to make that option public, it's fine, it can be some global 
static vector with strings in a check. Just to avoid bunch of ifs....

https://github.com/llvm/llvm-project/pull/80797
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to