forked from OSchip/llvm-project
_Bool is not a keyword in C++. Fixes PR7388 and PR8349.
llvm-svn: 116422
This commit is contained in:
parent
1e7db68774
commit
f10c97f36e
|
@ -183,6 +183,7 @@ PUNCTUATOR(at, "@")
|
|||
// KEYC99 - This is a keyword introduced to C in C99
|
||||
// KEYCXX - This is a C++ keyword, or a C++-specific keyword in the
|
||||
// implementation namespace
|
||||
// KEYNOCXX - This is a keyword in every non-C++ dialect.
|
||||
// KEYCXX0X - This is a C++ keyword introduced to C++ in C++0x
|
||||
// KEYGNU - This is a keyword if GNU extensions are enabled
|
||||
// KEYMS - This is a keyword if Microsoft extensions are enabled
|
||||
|
@ -222,7 +223,7 @@ KEYWORD(unsigned , KEYALL)
|
|||
KEYWORD(void , KEYALL)
|
||||
KEYWORD(volatile , KEYALL)
|
||||
KEYWORD(while , KEYALL)
|
||||
KEYWORD(_Bool , KEYNOMS)
|
||||
KEYWORD(_Bool , KEYNOCXX)
|
||||
KEYWORD(_Complex , KEYALL)
|
||||
KEYWORD(_Imaginary , KEYALL)
|
||||
KEYWORD(__func__ , KEYALL)
|
||||
|
|
|
@ -73,7 +73,7 @@ namespace {
|
|||
KEYMS = 32,
|
||||
BOOLSUPPORT = 64,
|
||||
KEYALTIVEC = 128,
|
||||
KEYNOMS = 256,
|
||||
KEYNOCXX = 256,
|
||||
KEYBORLAND = 512
|
||||
};
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ static void AddKeyword(llvm::StringRef Keyword,
|
|||
else if (LangOpts.Borland && (Flags & KEYBORLAND)) AddResult = 1;
|
||||
else if (LangOpts.Bool && (Flags & BOOLSUPPORT)) AddResult = 2;
|
||||
else if (LangOpts.AltiVec && (Flags & KEYALTIVEC)) AddResult = 2;
|
||||
else if (!LangOpts.Microsoft && (Flags & KEYNOMS)) AddResult = 2;
|
||||
else if (!LangOpts.CPlusPlus && (Flags & KEYNOCXX)) AddResult = 2;
|
||||
|
||||
// Don't add this keyword if disabled in this language.
|
||||
if (AddResult == 0) return;
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
// RUN: %clang_cc1 -triple x86_64-apple-darwin9 -fobjc-gc -emit-llvm -o %t %s
|
||||
// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin9 -fobjc-gc -emit-llvm -o %t %s
|
||||
|
||||
#ifdef __cplusplus
|
||||
typedef bool _Bool;
|
||||
#endif
|
||||
|
||||
@interface I
|
||||
{
|
||||
struct {
|
||||
|
|
Loading…
Reference in New Issue