structpppoe_taghdr;//expected-warning{{field 'hdr' with variable sized type 'struct pppoe_tag' not at the end of a struct or class is a GNU extension}}
typedefstruct__attribute__((noreturn))PreserveAttributesPreserveAttributes_t;// expected-warning {{'noreturn' attribute only applies to functions and methods}}
structFlexibleArrayMema;// expected-warning {{field 'a' with variable sized type 'struct FlexibleArrayMem' not at the end of a struct or class is a GNU extension}}
inti;
};
structFollowedByUnNamed{
structFlexibleArrayMema;// expected-warning {{field 'a' with variable sized type 'struct FlexibleArrayMem' not at the end of a struct or class is a GNU extension}}
struct{
inti;
};
};
structInAnonymous{
struct{// expected-warning-re {{field '' with variable sized type 'struct InAnonymous::(anonymous at {{.+}})' not at the end of a struct or class is a GNU extension}}
structFlexibleArrayMema;
};
inti;
};
structInAnonymousFollowedByAnon{
struct{// expected-warning-re {{field '' with variable sized type 'struct InAnonymousFollowedByAnon::(anonymous at {{.+}})' not at the end of a struct or class is a GNU extension}}
structFlexibleArrayMema;
};
struct{
inti;
};
};
// This is the behavior in C++ as well, so making sure we reproduce it here.
structInAnonymousFollowedByEmpty{
structFlexibleArrayMema;// expected-warning {{field 'a' with variable sized type 'struct FlexibleArrayMem' not at the end of a struct or class is a GNU extension}}