PCH support for InitListExpr, DesignatedInitExpr, and ImplicitValueInitExpr.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69251 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/PCH/exprs.c b/test/PCH/exprs.c
index d3d4b37..e08024b 100644
--- a/test/PCH/exprs.c
+++ b/test/PCH/exprs.c
@@ -64,6 +64,14 @@
 // ExtVectorElementExpr
 ext_vector_element *double_ptr5 = &floating;
 
+// InitListExpr
+double get_from_double_array(unsigned Idx) { return double_array[Idx]; }
+
+/// DesignatedInitExpr
+float get_from_designated(unsigned Idx) {
+  return designated_inits[2].y;
+}
+
 // TypesCompatibleExpr
 types_compatible *int_ptr7 = &integer;
 
diff --git a/test/PCH/exprs.h b/test/PCH/exprs.h
index a928b9b..43fd895 100644
--- a/test/PCH/exprs.h
+++ b/test/PCH/exprs.h
@@ -61,6 +61,15 @@
 extern double2 vec2, vec2b;
 typedef typeof(vec2.x) ext_vector_element;
 
+// InitListExpr
+double double_array[3] = { 1.0, 2.0 };
+
+// DesignatedInitExpr
+struct {
+  int x;
+  float y;
+} designated_inits[3] = { [0].y = 17, [2].x = 12.3, 3.5 };
+
 // TypesCompatibleExpr
 typedef typeof(__builtin_types_compatible_p(float, double)) types_compatible;