[clang] [Clang] Fix crash when transforming a `DependentAddressSpaceType` (PR #102206)

via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 6 12:46:52 PDT 2024


================
@@ -5838,7 +5839,7 @@ QualType TreeTransform<Derived>::TransformDependentAddressSpaceType(
   } else {
     TypeSourceInfo *DI = getSema().Context.getTrivialTypeSourceInfo(
         Result, getDerived().getBaseLocation());
-    TransformType(TLB, DI->getTypeLoc());
+    TLB.TypeWasModifiedSafely(DI->getType());
----------------
Sirraide wrote:

I’m candidly not familiar enough with `TypeLocBuilder` to know if this is the correct solution to this, but without this, we now crash if the resulting type *isn’t* dependent, e.g. in
```c++
template <int AS>
using ASPtrTy = void [[clang::address_space(AS)]] *;

ASPtrTy<1> x;
``` 

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


More information about the cfe-commits mailing list