[PATCH] D61458: [hip] Relax CUDA call restriction within `decltype` context.
Michael Liao via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri May 3 05:43:55 PDT 2019
hliao added a comment.
In D61458#1488970 <https://reviews.llvm.org/D61458#1488970>, @jlebar wrote:
> Here's one for you:
>
> __host__ float bar();
> __device__ int bar();
> __host__ __device__ auto foo() -> decltype(bar()) {}
>
>
> What is the return type of `foo`? :)
>
> I don't believe the right answer is, "float when compiling for host, int when compiling for device."
>
> I'd be happy if we said this was an error, so long as it's well-defined what exactly we're disallowing. But I bet @rsmith can come up with substantially more evil testcases than this.
At from CUDA 10, that's not acceptable as we are declaring two functions only differ from the return type. It seems CUDA attributes do not contribute to the function signature. clang is quite different here.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D61458/new/
https://reviews.llvm.org/D61458
More information about the cfe-commits
mailing list