[CUDA] Emit a warning if a CUDA host/device/global attribute is placed after '(....
authorJustin Lebar <jlebar@google.com>
Fri, 30 Sep 2016 19:55:55 +0000 (19:55 +0000)
committerJustin Lebar <jlebar@google.com>
Fri, 30 Sep 2016 19:55:55 +0000 (19:55 +0000)
commite46ea72d97e55039ff5a71ff50a154d8de28440b
treeacbf49512f54fa139b91929c607608ac1ff12cae
parent0139a5dcac495147cd11f7f2cba43398b3af122e
[CUDA] Emit a warning if a CUDA host/device/global attribute is placed after '(...)'.

Summary:
This is probably the sane place for the attribute to go, but nvcc
specifically rejects it.  Other GNU-style attributes are allowed in this
position (although judging from the warning it emits for
host/device/global, those attributes are applied to the lambda's
anonymous struct, not to the function itself).

It would be nice to have a FixIt message here, but doing so, or even
just getting the correct range for the attribute, including its '((' and
'))'s, is apparently Hard.

Reviewers: rnk

Subscribers: cfe-commits, tra

Differential Revision: https://reviews.llvm.org/D25115

llvm-svn: 282911
clang/include/clang/Basic/DiagnosticParseKinds.td
clang/lib/Parse/ParseExprCXX.cpp
clang/test/Parser/lambda-attr.cu