summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Frontend/FixItRewriter.cpp3
-rw-r--r--clang/lib/Sema/SemaDecl.cpp7
2 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/Frontend/FixItRewriter.cpp b/clang/lib/Frontend/FixItRewriter.cpp
index a53d1e56d14..33ab0b7c99b 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 f67b417ddd1..7cf44bf6acd 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);
OpenPOWER on IntegriCloud