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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits