diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-01-22 16:23:54 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-01-22 16:23:54 +0000 |
commit | 2d9dde0e0fc0a8a9013c32ca2ac170d628c5f86c (patch) | |
tree | 79a8fd297cde264f1ab940aa401835e2f8b178b0 | |
parent | e3a26635fbf1c826d19f96b039e8aa08f185ca73 (diff) | |
download | bcm5719-llvm-2d9dde0e0fc0a8a9013c32ca2ac170d628c5f86c.tar.gz bcm5719-llvm-2d9dde0e0fc0a8a9013c32ca2ac170d628c5f86c.zip |
EXTWARNify the warning about unnamed typedefs of enums
llvm-svn: 62766
-rw-r--r-- | clang/include/clang/Basic/DiagnosticKinds.def | 2 | ||||
-rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/clang/include/clang/Basic/DiagnosticKinds.def b/clang/include/clang/Basic/DiagnosticKinds.def index 664d3af3653..259265c2bfc 100644 --- a/clang/include/clang/Basic/DiagnosticKinds.def +++ b/clang/include/clang/Basic/DiagnosticKinds.def @@ -606,7 +606,7 @@ DIAG(err_expected_unqualified_id, ERROR, "expected unqualified-id") DIAG(err_no_declarators, ERROR, "declaration does not declare anything") -DIAG(warn_no_declarators, WARNING, +DIAG(ext_typedef_without_a_name, EXTWARN, "typedef requires a name") DIAG(err_func_def_no_params, ERROR, "function definition does not declare parameters") diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index dbf1e7b4165..276f2e24e85 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -736,11 +736,12 @@ Sema::DeclTy *Sema::ParsedFreeStandingDeclSpec(Scope *S, DeclSpec &DS) { return Tag; } - // Permit typedefs without declarators as a Microsoft extension. if (!DS.isMissingDeclaratorOk()) { + // Warn about typedefs of enums without names, since this is an + // extension in both Microsoft an GNU. if (DS.getStorageClassSpec() == DeclSpec::SCS_typedef && Tag && isa<EnumDecl>(Tag)) { - Diag(DS.getSourceRange().getBegin(), diag::warn_no_declarators) + Diag(DS.getSourceRange().getBegin(), diag::ext_typedef_without_a_name) << DS.getSourceRange(); return Tag; } |