aaron.ballman added inline comments.
================ Comment at: clang/lib/Sema/SemaDecl.cpp:10083 } + // HLSL not support address space on a function return type declaration. + LangAS AddressSpace = NewFD->getReturnType().getAddressSpace(); ---------------- ================ Comment at: clang/lib/Sema/SemaLambda.cpp:977 + if (!RetTy.isNull()) { + // HLSL not support address space on a lambda return type declaration. + LangAS AddressSpace = RetTy.getAddressSpace(); ---------------- ================ Comment at: clang/test/ParserHLSL/group_shared_202x.hlsl:5-6 + +// expected-error@+1 {{return type cannot be qualified with address space}} +auto l = []() -> groupshared void {}; +// expected-error@+1 {{expected a type}} ---------------- One test I think we need in SemaCXX for this is what happens when the lambda return type (or function return type) is deduced. e.g., ``` extern groupshared float f; auto func() { return f; } void other() { [&]() { return f; }; } ``` Does use of `return f` cause us to deduce a return type that's annotated with `groupshared` or does that get stripped off thanks to lvalue to rvalue conversions and so we deduce `float`? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D135060/new/ https://reviews.llvm.org/D135060 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits