1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 // pr7029 3 4 template <class Key, class T> struct QMap 5 { 6 void insert(const Key &, const T &); 7 T v; 8 }; 9 10 11 template <class Key, class T> 12 void QMap<Key, T>::insert(const Key &, const T &avalue) 13 { 14 v = avalue; 15 } 16 17 18 struct inotify_event 19 { 20 int wd; 21 22 // clang doesn't like '[]': 23 // cannot initialize a parameter of type 'void *' with an rvalue of type 'char (*)[]' 24 char name []; 25 }; 26 27 28 void foo() 29 { 30 inotify_event event; 31 inotify_event* ptr = &event; 32 inotify_event event1 = *ptr; 33 *ptr = event; 34 QMap<int, inotify_event> eventForId; 35 eventForId.insert(ptr->wd, *ptr); 36 } 37 38 struct S { 39 virtual void foo(); 40 }; 41 42 struct X { 43 int blah; 44 S strings[]; // expected-error {{flexible array member 'strings' of non-POD element type 'S []'}} 45 }; 46 47 class A { 48 int s; 49 char c[]; 50 }; 51 52 union B { 53 int s; 54 char c[]; 55 }; 56 57 namespace rdar9065507 { 58 59 struct StorageBase { 60 long ref_count; 61 unsigned size; 62 unsigned capacity; 63 }; 64 65 struct Storage : StorageBase { 66 int data[]; 67 }; 68 69 } 70