diff options
| author | Douglas Gregor <dgregor@apple.com> | 2009-02-18 22:23:55 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2009-02-18 22:23:55 +0000 |
| commit | 1cba5fe1d153da2d2a7bb6c81867d0dbe1b854a3 (patch) | |
| tree | 397ca622aa48dae6dd4203a32561544c8c605130 /clang/lib | |
| parent | e60ec0abca6c88802d08d58ca88284b0fda9a5f7 (diff) | |
| download | bcm5719-llvm-1cba5fe1d153da2d2a7bb6c81867d0dbe1b854a3.tar.gz bcm5719-llvm-1cba5fe1d153da2d2a7bb6c81867d0dbe1b854a3.zip | |
Downgrade the "excess elements in initializer" errors to warnings *in
C*. They're required errors in C++.
llvm-svn: 64964
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Sema/SemaInit.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index b54a8d674b2..38ab5c520da 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -323,9 +323,11 @@ void InitListChecker::CheckExplicitInitList(InitListExpr *IList, QualType &T, // We have leftover initializers if (IList->getNumInits() > 0 && SemaRef->IsStringLiteralInit(IList->getInit(Index), T)) { + unsigned DK = diag::warn_excess_initializers_in_char_array_initializer; + if (SemaRef->getLangOptions().CPlusPlus) + DK = diag::err_excess_initializers_in_char_array_initializer; // Special-case - SemaRef->Diag(IList->getInit(Index)->getLocStart(), - diag::err_excess_initializers_in_char_array_initializer) + SemaRef->Diag(IList->getInit(Index)->getLocStart(), DK) << IList->getInit(Index)->getSourceRange(); hadError = true; } else if (!T->isIncompleteType()) { @@ -338,8 +340,12 @@ void InitListChecker::CheckExplicitInitList(InitListExpr *IList, QualType &T, CurrentObjectType->isScalarType()? 2 : CurrentObjectType->isUnionType()? 3 : 4; - SemaRef->Diag(IList->getInit(Index)->getLocStart(), - diag::err_excess_initializers) + + unsigned DK = diag::warn_excess_initializers; + if (SemaRef->getLangOptions().CPlusPlus) + DK = diag::err_excess_initializers; + + SemaRef->Diag(IList->getInit(Index)->getLocStart(), DK) << initKind << IList->getInit(Index)->getSourceRange(); } } |

