aboutsummaryrefslogtreecommitdiff
path: root/Driver/clang.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2008-10-16 16:54:18 +0000
committerDaniel Dunbar <daniel@zuster.org>2008-10-16 16:54:18 +0000
commitd3db40151868df39b14d2ef8ffacf19e8c36331f (patch)
tree578814d5ceb5a81fc11992b8271c3a977757747d /Driver/clang.cpp
parent1e6759e9e33dcaa73ce14c8a908ac9f87ac16463 (diff)
Add --disable-free flag to clang.
- Disables the freeing of the ASTContext and the TranslationUnit after parsing & sema. - Primarily for timing the impact on -fsyntax-only timings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57643 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Driver/clang.cpp')
-rw-r--r--Driver/clang.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index ae7ec879dd..060fbf3f69 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -54,13 +54,17 @@ using namespace clang;
// Global options.
//===----------------------------------------------------------------------===//
-bool HadErrors = false;
+static bool HadErrors = false;
static llvm::cl::opt<bool>
Verbose("v", llvm::cl::desc("Enable verbose output"));
static llvm::cl::opt<bool>
Stats("print-stats",
llvm::cl::desc("Print performance metrics and statistics"));
+static llvm::cl::opt<bool>
+DisableFree("disable-free",
+ llvm::cl::desc("Disable freeing of memory on exit"),
+ llvm::cl::init(false));
enum ProgActions {
RewriteObjC, // ObjC->C Rewriter.
@@ -1187,7 +1191,7 @@ static void ProcessInputFile(Preprocessor &PP, PreprocessorFactory &PPF,
if (VerifyDiagnostics)
exit(CheckASTConsumer(PP, Consumer.get()));
- ParseAST(PP, Consumer.get(), Stats);
+ ParseAST(PP, Consumer.get(), Stats, !DisableFree);
} else {
if (VerifyDiagnostics)
exit(CheckDiagnostics(PP));