More careful consideration of C++11 13.3.3.1p4. Fixes PR12257.

llvm-svn: 153130
diff --git a/clang/test/SemaCXX/cxx0x-initializer-constructor.cpp b/clang/test/SemaCXX/cxx0x-initializer-constructor.cpp
index fdc882e..a14283c 100644
--- a/clang/test/SemaCXX/cxx0x-initializer-constructor.cpp
+++ b/clang/test/SemaCXX/cxx0x-initializer-constructor.cpp
@@ -236,3 +236,31 @@
 
   bool s = f(string<1>());
 }
+
+namespace PR12257 {
+  struct command_pair
+  {
+    command_pair(int, int);
+  };
+
+  struct command_map
+  {
+    command_map(std::initializer_list<command_pair>);
+  };
+
+  struct generator_pair
+  {
+    generator_pair(const command_map);
+  };
+
+  const std::initializer_list<generator_pair> x =
+  {
+    {
+      {
+        {
+          {3, 4}
+        }
+      }
+    }
+  };
+}