summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
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