Index: clang/lib/Sema/TreeTransform.h =================================================================== --- clang/lib/Sema/TreeTransform.h +++ clang/lib/Sema/TreeTransform.h @@ -6992,7 +6992,8 @@ // type sugar, and therefore cannot be diagnosed in any other way. if (auto nullability = oldType->getImmediateNullability()) { if (!modifiedType->canHaveNullability()) { - SemaRef.Diag(TL.getAttr()->getLocation(), + SemaRef.Diag((TL.getAttr() ? TL.getAttr()->getLocation() + : TL.getModifiedLoc().getBeginLoc()), diag::err_nullability_nonpointer) << DiagNullabilityKind(*nullability, false) << modifiedType; return QualType(); Index: clang/test/SemaCXX/nullability.cpp =================================================================== --- clang/test/SemaCXX/nullability.cpp +++ clang/test/SemaCXX/nullability.cpp @@ -136,3 +136,9 @@ void testNullabilityCompletenessWithTemplate() { Template tip; } + +namespace GH60344 { +class a; +template using c = b _Nullable; // expected-error {{'_Nullable' cannot be applied to non-pointer type 'GH60344::a'}} +c; // expected-note {{in instantiation of template type alias 'c' requested here}} +}