[clang] [clang]: support std::meta::info for primitive types (PR #190356)

via cfe-commits cfe-commits at lists.llvm.org
Sat Apr 4 08:37:55 PDT 2026


================
@@ -18517,6 +18560,23 @@ EvaluateComparisonBinaryOperator(EvalInfo &Info, const BinaryOperator *E,
     return Success(CmpResult::Equal, E);
   }
 
+  if (LHSTy->isMetaInfoType() && RHSTy->isMetaInfoType()) {
+    APValue LHSValue, RHSValue;
+    llvm::FoldingSetNodeID LID, RID;
+    if (!Evaluate(LHSValue, Info, E->getLHS()))
+      return false;
+    LHSValue.Profile(LID);
+
----------------
Sirraide wrote:

That is an idea, but also don’t we have some `Decl` kinds for which the canonical decl can _change_ during the course of a TU? Because if that’s the case we might want to use `getFirstDecl()` instead if available (for many `Decl`s, `getCanonicalDecl()` also just returns `getFirstDecl()`)

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


More information about the cfe-commits mailing list