craig.topper added inline comments.
================ Comment at: clang/test/SemaCXX/attr-riscv-rvv-vector-bits.cpp:12 + +template<typename T> struct S { T var; }; + ---------------- erichkeane wrote: > craig.topper wrote: > > @erichkeane does this cover the dependent case or were you looking for > > something else? > > > > Here are on the only mentions of template I see in SVE tests that use this > > attribute. > > > > ``` > > clang/test$ ack template `ack arm_sve_vector -l` > > CodeGenCXX/aarch64-mangle-sve-fixed-vectors.cpp > > 37:template <typename T> struct S {}; > > > > SemaCXX/attr-arm-sve-vector-bits.cpp > > 16:template<typename T> struct S { T var; }; > > ``` > > > > Here is the result for this patch > > > > ``` > > clang/test$ ack template `ack riscv_rvv_vector -l` > > CodeGenCXX/riscv-mangle-rvv-fixed-vectors.cpp > > 48:template <typename T> struct S {}; > > > > SemaCXX/attr-riscv-rvv-vector-bits.cpp > > 12:template<typename T> struct S { T var; }; > > ``` > Thats unfortunate, and I wish I'd thought of it at the time/been more active > reviewing the SVE stuff then. Really what I'm looking for is: > > ``` > template<int N> > struct Whatever { > using Something = char __attribute((riscv_rvv_vector_bits(N))); > }; > > void Func(Whatever<5>::Something MyVar){} > > ``` That does not appear to work. ``` $ ./bin/clang test.cpp --target=riscv64 -march=rv64gcv -mrvv-vector-bits=zvl test.cpp:3:41: error: 'riscv_rvv_vector_bits' attribute requires an integer constant using Something = char __attribute((riscv_rvv_vector_bits(N))); ``` It's not very useful as a template parameter. There's only one value that works and that's whatever __RISCV_RVV_VLEN_BITS is set to. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D145088/new/ https://reviews.llvm.org/D145088 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits