diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-04-26 03:16:45 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-04-26 03:16:45 +0000 |
commit | 6e4a0af697eec5b0c47ccf96dff170af56df826d (patch) | |
tree | c6a615db57564d0150eea0c68d2fbb05ffd3275f | |
parent | 4f50c50e783461ea1ec47dd6fe9be10aafcd76ad (diff) |
PR12660: Don't crash when initializing a const reference from a braced init list
which creates a temporary by calling a constructor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155608 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Sema/Initialization.h | 4 | ||||
-rw-r--r-- | test/SemaCXX/cxx0x-initializer-references.cpp | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/include/clang/Sema/Initialization.h b/include/clang/Sema/Initialization.h index 4433843ff8..0dd68875a9 100644 --- a/include/clang/Sema/Initialization.h +++ b/include/clang/Sema/Initialization.h @@ -225,7 +225,9 @@ public: /// \brief Create the initialization entity for a temporary. static InitializedEntity InitializeTemporary(QualType Type) { - return InitializedEntity(EK_Temporary, SourceLocation(), Type); + InitializedEntity Result(EK_Temporary, SourceLocation(), Type); + Result.TypeInfo = 0; + return Result; } /// \brief Create the initialization entity for a temporary. diff --git a/test/SemaCXX/cxx0x-initializer-references.cpp b/test/SemaCXX/cxx0x-initializer-references.cpp index d8fdd5a5a0..c4e9c907a3 100644 --- a/test/SemaCXX/cxx0x-initializer-references.cpp +++ b/test/SemaCXX/cxx0x-initializer-references.cpp @@ -85,3 +85,8 @@ namespace PR12182 { f({1, 2}); } } + +namespace PR12660 { + const int &i { 1 }; + struct S { S(int); } const &s { 2 }; +} |