================ @@ -0,0 +1,21 @@ +// RUN: %clang_cc1 -triple arm64-apple-ios -fsyntax-only -verify -fptrauth-intrinsics -std=c++11 %s +// RUN: %clang_cc1 -triple aarch64-linux-gnu -fsyntax-only -verify -fptrauth-intrinsics -std=c++11 %s + +template <typename T> struct G { + T __ptrauth(0,0,1234) test; + // expected-error@-1 2 {{type '__ptrauth(0,0,1234) T' is already __ptrauth-qualified}} +}; + +template <typename T> struct Indirect { + G<T> layers; + // expected-note@-1{{in instantiation of template class 'G<void *__ptrauth(0,0,1235)>' requested here}} + // expected-note@-2{{in instantiation of template class 'G<void *__ptrauth(0,0,1234)>' requested here}} +}; + +void f3() { + Indirect<void* __ptrauth(0,0,1234)> one; + // expected-note@-1{{in instantiation of template class 'Indirect<void *__ptrauth(0,0,1234)>' requested here}} + Indirect<void* __ptrauth(0,0,1235)> two; + // expected-note@-1{{in instantiation of template class 'Indirect<void *__ptrauth(0,0,1235)>' requested here}} + Indirect<void*> three; +} ---------------- AaronBallman wrote:
> This isn't possible as template parameters cannot be passed to __ptrauth Why? Also, missing test coverage then. https://github.com/llvm/llvm-project/pull/100830 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits