implement some more FIXMEs, by rejecting more bogus stuff in
objc mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58216 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Parser/objc-init.m b/test/Parser/objc-init.m
index 4478665..085db72 100644
--- a/test/Parser/objc-init.m
+++ b/test/Parser/objc-init.m
@@ -1,4 +1,4 @@
-// RUN: clang -fsyntax-only -verify %s
+// RUN: clang -fsyntax-only -verify %s -pedantic
 // rdar://5707001
 
 @interface NSNumber;
@@ -6,6 +6,10 @@
 - (unsigned) METH2;
 @end
 
+struct SomeStruct {
+  int x, y, z, q;
+};
+
 void test1() {
 	id objects[] = {[NSNumber METH]};
 }
@@ -24,3 +28,14 @@
   unsigned x[] = {[NSNumber METH2]+2};
 }
 
+void test5(NSNumber *x) {
+  unsigned y[] = {
+    [4][NSNumber METH2]+2,   // expected-warning {{use of GNU 'missing =' extension in designator}}
+    [4][x METH2]+2   // expected-warning {{use of GNU 'missing =' extension in designator}}
+  };
+  
+  struct SomeStruct z = {
+    .x = [x METH2], // ok.
+    .x [x METH2]    // expected-error {{expected '=' or another designator}}
+  };
+}