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 | 7c53ca6e03833adab4465462b7d5c888741b715d (patch) | |
tree | 0bfa5dd3e46d6a13c41af8a656cac2a98d3e43c6 /lib/Sema/SemaInit.cpp | |
parent | 90dafa1638edaffbba4b50f504d1470428a2d25d (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.cpp | 14 |
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(); } } |