summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2012-05-12 00:26:07 +0000
committerBill Wendling <isanbard@gmail.com>2012-05-12 00:26:07 +0000
commita5301de60d7b02629aa14c8a94f8731efeb1d923 (patch)
tree5ff1dfaad4a6185df6354952ab35d0edd649154e
parentd0702d69612e67de767cf60b0dbddcaf922199ee (diff)
Merging r155608:
------------------------------------------------------------------------ r155608 | rsmith | 2012-04-25 20:16:45 -0700 (Wed, 25 Apr 2012) | 3 lines 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/branches/release_31@156678 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Sema/Initialization.h4
-rw-r--r--test/SemaCXX/cxx0x-initializer-references.cpp5
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 };
+}