================
@@ -15607,8 +15607,8 @@ bool Sema::IsLayoutCompatible(QualType T1, QualType T2) 
const {
 
 bool Sema::IsPointerInterconvertibleBaseOf(const TypeSourceInfo *Base,
                                            const TypeSourceInfo *Derived) {
-  QualType BaseT = Base->getType()->getCanonicalTypeUnqualified();
-  QualType DerivedT = Derived->getType()->getCanonicalTypeUnqualified();
+  QualType BaseT = Base->getType().getUnqualifiedType();
+  QualType DerivedT = Derived->getType().getUnqualifiedType();
----------------
AaronBallman wrote:

> also, if canonical types can have qualifiers, why is `A` the canonical type 
> of `const A`?

I'm not certain *why* template type parameter substitution types can have 
canonical types with qualifiers. Maybe @erichkeane @mizvekov @zygoloid or 
someone else knows?

https://github.com/llvm/llvm-project/pull/167881
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to