"expected unqualified-id")
DIAG(err_no_declarators, ERROR,
"declaration does not declare anything")
-DIAG(ext_no_declarators, EXTENSION,
- "typedef without a name is a Microsoft extension")
+DIAG(warn_no_declarators, WARNING,
+ "typedef requires a name")
DIAG(err_func_def_no_params, ERROR,
"function definition does not declare parameters")
DIAG(err_expected_lparen_after_type, ERROR,
// Permit typedefs without declarators as a Microsoft extension.
if (!DS.isMissingDeclaratorOk()) {
- if (getLangOptions().Microsoft &&
- DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {
- Diag(DS.getSourceRange().getBegin(), diag::ext_no_declarators)
+ if (DS.getStorageClassSpec() == DeclSpec::SCS_typedef &&
+ Tag && isa<EnumDecl>(Tag)) {
+ Diag(DS.getSourceRange().getBegin(), diag::warn_no_declarators)
<< DS.getSourceRange();
return Tag;
}
enum xpto; // expected-warning{{ISO C forbids forward references to 'enum' types}}
enum xpto; // expected-warning{{ISO C forbids forward references to 'enum' types}}
}
+
+// <rdar://problem/6503878>
+typedef enum { X = 0 }; // expected-warning{{typedef requires a name}}