[cfe-commits] r48926 - in /cfe/trunk: Driver/RewriteTest.cpp test/Rewriter/objc-ivar-receiver-1.m
Steve Naroff
snaroff at apple.com
Fri Mar 28 15:26:09 PDT 2008
Author: snaroff
Date: Fri Mar 28 17:26:09 2008
New Revision: 48926
URL: http://llvm.org/viewvc/llvm-project?rev=48926&view=rev
Log:
Only have the rewriter produce a file when there are no errors.
Modified:
cfe/trunk/Driver/RewriteTest.cpp
cfe/trunk/test/Rewriter/objc-ivar-receiver-1.m
Modified: cfe/trunk/Driver/RewriteTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Driver/RewriteTest.cpp?rev=48926&r1=48925&r2=48926&view=diff
==============================================================================
--- cfe/trunk/Driver/RewriteTest.cpp (original)
+++ cfe/trunk/Driver/RewriteTest.cpp Fri Mar 28 17:26:09 2008
@@ -84,8 +84,9 @@
// Needed for header files being rewritten
bool IsHeader;
- std::ostream &OutFile;
-
+ std::string InFileName;
+ std::string OutFileName;
+
std::string Preamble;
static const int OBJC_ABI_VERSION =7 ;
@@ -96,13 +97,8 @@
// Top Level Driver code.
virtual void HandleTopLevelDecl(Decl *D);
void HandleDeclInMainFile(Decl *D);
- RewriteTest(bool isHeader, std::ostream &outFile,
- Diagnostic &D, const LangOptions &LOpts)
- : Diags(D), LangOpts(LOpts), OutFile(outFile) {
- IsHeader = isHeader;
- RewriteFailedDiag = Diags.getCustomDiagID(Diagnostic::Warning,
- "rewriting sub-expression within a macro (may not be correct)");
- }
+ RewriteTest(std::string inFile, std::string outFile,
+ Diagnostic &D, const LangOptions &LOpts);
~RewriteTest();
void ReplaceStmt(Stmt *Old, Stmt *New) {
@@ -239,29 +235,21 @@
return Ext == "h" || Ext == "hh" || Ext == "H";
}
+RewriteTest::RewriteTest(std::string inFile, std::string outFile,
+ Diagnostic &D, const LangOptions &LOpts)
+ : Diags(D), LangOpts(LOpts) {
+ IsHeader = IsHeaderFile(inFile);
+ InFileName = inFile;
+ OutFileName = outFile;
+ RewriteFailedDiag = Diags.getCustomDiagID(Diagnostic::Warning,
+ "rewriting sub-expression within a macro (may not be correct)");
+}
+
ASTConsumer *clang::CreateCodeRewriterTest(const std::string& InFile,
const std::string& OutFile,
Diagnostic &Diags,
const LangOptions &LOpts) {
- // Create the output file.
-
- std::ostream *Out;
- if (OutFile == "-") {
- Out = llvm::cout.stream();
- } else if (!OutFile.empty()) {
- Out = new std::ofstream(OutFile.c_str(),
- std::ios_base::binary|std::ios_base::out);
- } else if (InFile == "-") {
- Out = llvm::cout.stream();
- } else {
- llvm::sys::Path Path(InFile);
- Path.eraseSuffix();
- Path.appendSuffix("cpp");
- Out = new std::ofstream(Path.toString().c_str(),
- std::ios_base::binary|std::ios_base::out);
- }
-
- return new RewriteTest(IsHeaderFile(InFile), *Out, Diags, LOpts);
+ return new RewriteTest(InFile, OutFile, Diags, LOpts);
}
void RewriteTest::Initialize(ASTContext &context) {
@@ -436,6 +424,27 @@
// Rewrite tabs if we care.
//RewriteTabs();
+ if (Diags.hasErrorOccurred())
+ return;
+
+ // Create the output file.
+
+ std::ostream *OutFile;
+ if (OutFileName == "-") {
+ OutFile = llvm::cout.stream();
+ } else if (!OutFileName.empty()) {
+ OutFile = new std::ofstream(OutFileName.c_str(),
+ std::ios_base::binary|std::ios_base::out);
+ } else if (InFileName == "-") {
+ OutFile = llvm::cout.stream();
+ } else {
+ llvm::sys::Path Path(InFileName);
+ Path.eraseSuffix();
+ Path.appendSuffix("cpp");
+ OutFile = new std::ofstream(Path.toString().c_str(),
+ std::ios_base::binary|std::ios_base::out);
+ }
+
RewriteInclude();
InsertText(SourceLocation::getFileLoc(MainFileID, 0),
@@ -450,12 +459,12 @@
if (const RewriteBuffer *RewriteBuf =
Rewrite.getRewriteBufferFor(MainFileID)) {
//printf("Changed:\n");
- OutFile << std::string(RewriteBuf->begin(), RewriteBuf->end());
+ *OutFile << std::string(RewriteBuf->begin(), RewriteBuf->end());
} else {
fprintf(stderr, "No changes\n");
}
// Emit metadata.
- OutFile << ResultStr;
+ *OutFile << ResultStr;
}
//===----------------------------------------------------------------------===//
Modified: cfe/trunk/test/Rewriter/objc-ivar-receiver-1.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Rewriter/objc-ivar-receiver-1.m?rev=48926&r1=48925&r2=48926&view=diff
==============================================================================
--- cfe/trunk/test/Rewriter/objc-ivar-receiver-1.m (original)
+++ cfe/trunk/test/Rewriter/objc-ivar-receiver-1.m Fri Mar 28 17:26:09 2008
@@ -1,4 +1,4 @@
-// RUN: clang -rewrite-test %s
+// RUN: clang -rewrite-test %s -o -
// RUN: clang -rewrite-test %s -o - | grep 'newInv->_container'
@interface NSMutableArray
More information about the cfe-commits
mailing list