summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2019-08-27 20:33:05 +0000
committerAaron Ballman <aaron@aaronballman.com>2019-08-27 20:33:05 +0000
commit27e66bf710951ec8574a4ecc0770456c794ffef8 (patch)
treea223644519b8bb3d7ff1b7912da1ec00c10d0c1f /clang
parent528f5da6d862f59c6e005f85eb32a0c67f65bc4d (diff)
downloadbcm5719-llvm-27e66bf710951ec8574a4ecc0770456c794ffef8.tar.gz
bcm5719-llvm-27e66bf710951ec8574a4ecc0770456c794ffef8.zip
Diagnose _Bool as a C99 extension.
llvm-svn: 370108
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Parse/ParseDecl.cpp3
-rw-r--r--clang/test/Parser/c99.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index 6c3b6d6e62a..c4c5045d2fe 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -3777,6 +3777,9 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
break;
case tok::kw_bool:
case tok::kw__Bool:
+ if (Tok.is(tok::kw__Bool) && !getLangOpts().C99)
+ Diag(Tok, diag::ext_c99_feature) << Tok.getName();
+
if (Tok.is(tok::kw_bool) &&
DS.getTypeSpecType() != DeclSpec::TST_unspecified &&
DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {
diff --git a/clang/test/Parser/c99.c b/clang/test/Parser/c99.c
index 3828f2057a3..1213a20b6e8 100644
--- a/clang/test/Parser/c99.c
+++ b/clang/test/Parser/c99.c
@@ -6,3 +6,6 @@ double _Imaginary foo; // ext-warning {{'_Imaginary' is a C99 extension}} \
// expected-error {{imaginary types are not supported}}
double _Complex bar; // ext-warning {{'_Complex' is a C99 extension}}
+#if !defined(__cplusplus)
+_Bool baz; // ext-warning {{'_Bool' is a C99 extension}}
+#endif
OpenPOWER on IntegriCloud