The attached (trivial) patch makes Clang emit Fix-Its that remove duplicate decl-specifiers (e.g. "const int const x = 3").
>From 6e9bf9a63d3183947ff556bd0dcd390b5b1e1e58 Mon Sep 17 00:00:00 2001 From: Eelis van der Weegen <[email protected]> Date: Sat, 21 Aug 2010 14:10:54 +0200 Subject: [PATCH] Emit Fix-Its for duplicate decl-specifiers. --- lib/Parse/ParseDecl.cpp | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git lib/Parse/ParseDecl.cpp lib/Parse/ParseDecl.cpp index 3f97636..5a0c987 100644 --- lib/Parse/ParseDecl.cpp +++ lib/Parse/ParseDecl.cpp @@ -1405,7 +1405,10 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS, if (isInvalid) { assert(PrevSpec && "Method did not return previous specifier!"); assert(DiagID); - Diag(Tok, DiagID) << PrevSpec; + if (DiagID == diag::ext_duplicate_declspec) + Diag(Tok, DiagID) << PrevSpec << FixItHint::CreateRemoval(Loc); + else + Diag(Tok, DiagID) << PrevSpec; } DS.SetRangeEnd(Tok.getLocation()); ConsumeToken(); -- 1.7.1
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
