summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGException.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-07-22 23:46:18 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-07-22 23:46:18 +0000
commit51fd8a020b05037ce7215ccc6f6f3486a157e8b4 (patch)
treef5b12fd92b3ad1798238f2bd8c89febbfdbc9884 /clang/lib/CodeGen/CGException.cpp
parenta3a11549abc9bf9e4994bdd436b47e2402d2194e (diff)
downloadbcm5719-llvm-51fd8a020b05037ce7215ccc6f6f3486a157e8b4.tar.gz
bcm5719-llvm-51fd8a020b05037ce7215ccc6f6f3486a157e8b4.zip
[MS Compat] Allow _Atomic(Type) and 'struct _Atomic' to coexist
MSVC 2013 ships, as part of its STL implementation, a class named '_Atomic'. This is unfortunate because this keyword is in conflict with the C11 keyword with the same name. Our solution was to disable this keyword when targeting MSVC 2013 and reenable it for 2015. However, this makes it impossible for clang's headers to make use of _Atomic. This is problematic in the case of libc++ as it makes heavy use of this keyword. Let the keywordness of _Atomic float under certain circumstances: the body of a class named _Atomic, or a class with a base specifier named _Atomic, will not have the keyword variant of _Atomic for the duration of the class body. This is sufficient to allow us to correctly handle _Atomic in the STL while permitting us to use _Atomic as a keyword everywhere else. Differential Revision: http://reviews.llvm.org/D11233 llvm-svn: 242970
Diffstat (limited to 'clang/lib/CodeGen/CGException.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud