From 6e4a0af697eec5b0c47ccf96dff170af56df826d Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 26 Apr 2012 03:16:45 +0000 Subject: [PATCH] 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 --- include/clang/Sema/Initialization.h | 4 +++- test/SemaCXX/cxx0x-initializer-references.cpp | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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 }; +} -- 2.50.1