Summary: When Sema looks up an attribute name, it strips off leading and trailing "__" if the attribute is GNU-style. That is, __attribute__((foo)) and __attribute__((__foo__)) are equivalent. This is only true for GNU-style attributes. In particular, __declspec(__foo__) is not equivalent to __declspec(foo), and Sema respects this difference. This patch fixes TableGen to match Sema's behavior. The spelling 'GNU<"__foo__">' should be normalized to 'GNU<"foo">', but 'Declspec<"__foo__">' should not be changed. This is necessary to make CUDA compilation work on Windows, because e.g. the __device__ attribute is spelled __declspec(__device__). Attr.td does not contain any Declspec spellings that start or end with "__", so this change should not affect any other attributes. Reviewers: rnk Subscribers: cfe-commits, tra Differential Revision: https://reviews.llvm.org/D28318 llvm-svn: 291129 |
||
|---|---|---|
| .. | ||
| ABITest | ||
| CIndex | ||
| ClangVisualizers | ||
| TableGen | ||
| TestUtils | ||
| VtableTest | ||
| analyzer | ||
| check_cfc | ||
| perf-training | ||
| valgrind | ||
| CaptureCmd | ||
| ClangDataFormat.py | ||
| CmpDriver | ||
| FindSpecRefs | ||
| FuzzTest | ||
| builtin-defines.c | ||
| find-unused-diagnostics.sh | ||
| modfuzz.py | ||
| token-delta.py | ||