================
@@ -494,6 +500,18 @@ static void profileIntValue(llvm::FoldingSetNodeID &ID,
const llvm::APInt &V) {
ID.AddInteger((uint32_t)V.extractBitsAsZExtValue(std::min(32u, N - I), I));
}
+static void profileReflection(llvm::FoldingSetNodeID &ID, APValue V) {
+ ID.AddInteger(static_cast<int>(V.getReflectionOperandKind()));
+ switch (V.getReflectionOperandKind()) {
+ case ReflectionKind::Type: {
+ const TypeSourceInfo* info = static_cast<const
TypeSourceInfo*>(V.getOpaqueReflectionOperand());
+ ID.AddPointer((info->getType().getCanonicalType().getAsOpaquePtr()));
----------------
katzdm wrote:
We do want to remove things like decltypes, but we don't want to remove
aliases. Not sure if we have an existing "unwrapping" method like that; if not,
perhaps it would be worth adding such a sibling method to `ASTContext`.
https://github.com/llvm/llvm-project/pull/190356
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits