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

Nhat Nguyen via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 4 12:05:24 PDT 2026


================
@@ -487,6 +487,13 @@ llvm::Type *CodeGenTypes::ConvertType(QualType T) {
       ResultType = llvm::PointerType::getUnqual(getLLVMContext());
       break;
 
+    case BuiltinType::MetaInfo:
+      // FIXME(Reflection): once consteval-only types are supported,
+      // make this an llvm_unreachable instead because reflection
+      // should not reach here
+      ResultType = llvm::IntegerType::get(getLLVMContext(), 64);
+      break;
----------------
changkhothuychung wrote:

This is supposed to be invalid code in reflection and we should issue diagnostics. Since we don't implement consteval-only values yet, I just leave the codegen part as is for now, and for the example above, it will hit this function - https://github.com/llvm/llvm-project/blob/main/clang/lib/CodeGen/CGExprScalar.cpp#L1985 

So for the `BuiltintType::MetaInfo` case in `CodeGenTypes::ConvertType`, we can't put an assert for now because it will crash the example above. I am thinking we can leave this as is, and put a note to fix this when we start implementing consteval-only values. What do you think? 

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


More information about the cfe-commits mailing list