]> granicus.if.org Git - clang/commit
Implement DR990 and DR1070. Aggregate initialization initializes uninitialized
authorRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 3 Jun 2014 08:26:00 +0000 (08:26 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 3 Jun 2014 08:26:00 +0000 (08:26 +0000)
commit80fe8a6c2142df4718e2482a0562ee6142de1685
tree9d6edb9d38af9d9163661f2a5b51c78392a678d2
parentea7885793bc604f566db6d1d99c845bfec6b8119
Implement DR990 and DR1070. Aggregate initialization initializes uninitialized
elements from {}, rather than value-initializing them. This permits calling an
initializer-list constructor or constructing a std::initializer_list object.
(It would also permit initializing a const reference or rvalue reference if
that weren't explicitly prohibited by other rules.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210091 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/Expr.h
include/clang/Sema/Initialization.h
lib/CodeGen/CGExprCXX.cpp
lib/Sema/SemaInit.cpp
test/CXX/drs/dr10xx.cpp [new file with mode: 0644]
test/CXX/drs/dr9xx.cpp [new file with mode: 0644]
test/CodeGenCXX/cxx0x-initializer-stdinitializerlist.cpp
test/CodeGenCXX/cxx1y-initializer-aggregate.cpp
test/SemaCXX/cxx0x-initializer-constructor.cpp
test/SemaCXX/cxx0x-initializer-stdinitializerlist.cpp
www/cxx_dr_status.html