summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-02-18 22:23:55 +0000
committerDouglas Gregor <dgregor@apple.com>2009-02-18 22:23:55 +0000
commit1cba5fe1d153da2d2a7bb6c81867d0dbe1b854a3 (patch)
tree397ca622aa48dae6dd4203a32561544c8c605130 /clang/lib
parente60ec0abca6c88802d08d58ca88284b0fda9a5f7 (diff)
downloadbcm5719-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.cpp14
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();
}
}
OpenPOWER on IntegriCloud