From 862ffb11d513d2037d928eb1becefa7acbe136d1 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Thu, 2 Apr 2009 03:14:12 +0000 Subject: [PATCH] Clean up -fixit output slightly llvm-svn: 68278 --- clang/lib/Frontend/FixItRewriter.cpp | 3 ++- clang/lib/Sema/SemaDecl.cpp | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/clang/lib/Frontend/FixItRewriter.cpp b/clang/lib/Frontend/FixItRewriter.cpp index a53d1e56d14c..33ab0b7c99b3 100644 --- a/clang/lib/Frontend/FixItRewriter.cpp +++ b/clang/lib/Frontend/FixItRewriter.cpp @@ -57,8 +57,9 @@ bool FixItRewriter::WriteFixedFile(const std::string &InFileName, OutFile = &llvm::outs(); } else { llvm::sys::Path Path(InFileName); + std::string Suffix = Path.getSuffix(); Path.eraseSuffix(); - Path.appendSuffix("cpp"); + Path.appendSuffix("fixit." + Suffix); std::string Err; OutFile = new llvm::raw_fd_ostream(Path.toString().c_str(), // set binary mode (critical for Windoze) diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index f67b417ddd1d..7cf44bf6acd1 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -2706,11 +2706,12 @@ void Sema::ActOnFinishKNRParamDeclarations(Scope *S, Declarator &D, // Verify 6.9.1p6: 'every identifier in the identifier list shall be declared' // for a K&R function. if (!FTI.hasPrototype) { - for (unsigned i = 0, e = FTI.NumArgs; i != e; ++i) { + for (int i = FTI.NumArgs; i != 0; /* decrement in loop */) { + --i; if (FTI.ArgInfo[i].Param == 0) { - std::string Code = "int "; + std::string Code = " int "; Code += FTI.ArgInfo[i].Ident->getName(); - Code += ";\n "; + Code += ";\n"; Diag(FTI.ArgInfo[i].IdentLoc, diag::ext_param_not_declared) << FTI.ArgInfo[i].Ident << CodeModificationHint::CreateInsertion(LocAfterDecls, Code);