aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaInit.cpp
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
commit7c53ca6e03833adab4465462b7d5c888741b715d (patch)
tree0bfa5dd3e46d6a13c41af8a656cac2a98d3e43c6 /lib/Sema/SemaInit.cpp
parent90dafa1638edaffbba4b50f504d1470428a2d25d (diff)
Downgrade the "excess elements in initializer" errors to warnings *in
C*. They're required errors in C++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64964 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaInit.cpp')
-rw-r--r--lib/Sema/SemaInit.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/Sema/SemaInit.cpp b/lib/Sema/SemaInit.cpp
index b54a8d674b..38ab5c520d 100644
--- a/lib/Sema/SemaInit.cpp
+++ b/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();
}
}