[cfe-commits] r155608 - in /cfe/trunk: include/clang/Sema/Initialization.h test/SemaCXX/cxx0x-initializer-references.cpp

Richard Smith richard-llvm at metafoo.co.uk
Wed Apr 25 20:16:45 PDT 2012


Author: rsmith
Date: Wed Apr 25 22:16:45 2012
New Revision: 155608

URL: http://llvm.org/viewvc/llvm-project?rev=155608&view=rev
Log:
PR12660: Don't crash when initializing a const reference from a braced init list
which creates a temporary by calling a constructor.

Modified:
    cfe/trunk/include/clang/Sema/Initialization.h
    cfe/trunk/test/SemaCXX/cxx0x-initializer-references.cpp

Modified: cfe/trunk/include/clang/Sema/Initialization.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Initialization.h?rev=155608&r1=155607&r2=155608&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Initialization.h (original)
+++ cfe/trunk/include/clang/Sema/Initialization.h Wed Apr 25 22:16:45 2012
@@ -225,7 +225,9 @@
   
   /// \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.

Modified: cfe/trunk/test/SemaCXX/cxx0x-initializer-references.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/cxx0x-initializer-references.cpp?rev=155608&r1=155607&r2=155608&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/cxx0x-initializer-references.cpp (original)
+++ cfe/trunk/test/SemaCXX/cxx0x-initializer-references.cpp Wed Apr 25 22:16:45 2012
@@ -85,3 +85,8 @@
       f({1, 2});
   }
 }
+
+namespace PR12660 {
+  const int &i { 1 };
+  struct S { S(int); } const &s { 2 };
+}





More information about the cfe-commits mailing list