summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaInit.cpp
diff options
context:
space:
mode:
authorSebastian Redl <sebastian.redl@getdesigned.at>2011-09-24 17:48:14 +0000
committerSebastian Redl <sebastian.redl@getdesigned.at>2011-09-24 17:48:14 +0000
commit12757ab4cb49f64071d1cd8d6a186c9a975721fa (patch)
treeaa1d6ff97a5d5a7928a7135183d8c850717b47fd /clang/lib/Sema/SemaInit.cpp
parent46975ea682f4414ad2bcbee4d8c1ad7835354ec6 (diff)
downloadbcm5719-llvm-12757ab4cb49f64071d1cd8d6a186c9a975721fa.tar.gz
bcm5719-llvm-12757ab4cb49f64071d1cd8d6a186c9a975721fa.zip
Treat list-initialization of scalars as a first-class citizen in C++11.
Allow empty initializer lists for scalars, which mean value-initialization. Constant evaluation for single-element and empty initializer lists for scalars. Codegen for empty initializer lists for scalars. Test case comes in next commit. llvm-svn: 140459
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r--clang/lib/Sema/SemaInit.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp
index 7c27e6fbae0..2e4b2362b1f 100644
--- a/clang/lib/Sema/SemaInit.cpp
+++ b/clang/lib/Sema/SemaInit.cpp
@@ -877,11 +877,12 @@ void InitListChecker::CheckScalarType(const InitializedEntity &Entity,
InitListExpr *StructuredList,
unsigned &StructuredIndex) {
if (Index >= IList->getNumInits()) {
- // FIXME: Allowed in C++11.
- if (!VerifyOnly)
- SemaRef.Diag(IList->getLocStart(), diag::err_empty_scalar_initializer)
- << IList->getSourceRange();
- hadError = true;
+ if (!SemaRef.getLangOptions().CPlusPlus0x) {
+ if (!VerifyOnly)
+ SemaRef.Diag(IList->getLocStart(), diag::err_empty_scalar_initializer)
+ << IList->getSourceRange();
+ hadError = true;
+ }
++Index;
++StructuredIndex;
return;
OpenPOWER on IntegriCloud