summaryrefslogtreecommitdiffstats
path: root/clang/Driver/clang.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/Driver/clang.cpp')
-rw-r--r--clang/Driver/clang.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/clang/Driver/clang.cpp b/clang/Driver/clang.cpp
index 96f6dde1ec9..e3362eccd9e 100644
--- a/clang/Driver/clang.cpp
+++ b/clang/Driver/clang.cpp
@@ -63,6 +63,7 @@ Stats("print-stats",
enum ProgActions {
RewriteObjC, // ObjC->C Rewriter.
+ RewriteMacros, // Expand macros but not #includes.
HTMLTest, // HTML displayer testing stuff.
EmitLLVM, // Emit a .ll file.
EmitBC, // Emit a .bc file.
@@ -136,7 +137,9 @@ ProgAction(llvm::cl::desc("Choose output type:"), llvm::cl::ZeroOrMore,
clEnumValN(SerializeAST, "serialize",
"Build ASTs and emit .ast file"),
clEnumValN(RewriteObjC, "rewrite-objc",
- "Playground for the code rewriter"),
+ "Rewrite ObjC into C (code rewriter example)"),
+ clEnumValN(RewriteMacros, "rewrite-macros",
+ "Expand macros without full preprocessing"),
clEnumValEnd));
@@ -1218,7 +1221,7 @@ static void ProcessInputFile(Preprocessor &PP, PreprocessorFactory &PPF,
DoPrintPreprocessedInput(PP, OutputFile);
ClearSourceMgr = true;
break;
-
+
case ParseNoop: // -parse-noop
ParseFile(PP, new MinimalAction(PP.getIdentifierTable()));
ClearSourceMgr = true;
@@ -1232,6 +1235,11 @@ static void ProcessInputFile(Preprocessor &PP, PreprocessorFactory &PPF,
case ParseSyntaxOnly: // -fsyntax-only
Consumer = new ASTConsumer();
break;
+
+ case RewriteMacros:
+ RewriteMacrosInInput(PP, OutputFile);
+ ClearSourceMgr = true;
+ break;
}
if (Consumer) {
OpenPOWER on IntegriCloud