forked from OSchip/llvm-project
Support -frewrite-includes as an option while preprocessing.
llvm-svn: 158460
This commit is contained in:
parent
76cae518cf
commit
e993e4cd9b
|
@ -332,8 +332,6 @@ def rewrite_test : Flag<"-rewrite-test">,
|
|||
HelpText<"Rewriter playground">;
|
||||
def rewrite_macros : Flag<"-rewrite-macros">,
|
||||
HelpText<"Expand macros without full preprocessing">;
|
||||
def frewrite_includes : Flag<"-frewrite-includes">,
|
||||
HelpText<"Expand includes without full preprocessing">;
|
||||
def migrate : Flag<"-migrate">,
|
||||
HelpText<"Migrate source code">;
|
||||
}
|
||||
|
@ -495,6 +493,8 @@ def token_cache : Separate<"-token-cache">, MetaVarName<"<path>">,
|
|||
HelpText<"Use specified token cache file">;
|
||||
def detailed_preprocessing_record : Flag<"-detailed-preprocessing-record">,
|
||||
HelpText<"include a detailed record of preprocessing actions">;
|
||||
def frewrite_includes : Flag<"-frewrite-includes">,
|
||||
HelpText<"Expand includes without full preprocessing">;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// OpenCL Options
|
||||
|
|
|
@ -43,7 +43,6 @@ namespace frontend {
|
|||
PrintPreamble, ///< Print the "preamble" of the input file
|
||||
PrintPreprocessedInput, ///< -E mode.
|
||||
RewriteMacros, ///< Expand macros but not \#includes.
|
||||
RewriteIncludes, ///< Expand \#includes but not macros.
|
||||
RewriteObjC, ///< ObjC->C Rewriter.
|
||||
RewriteTest, ///< Rewriter playground
|
||||
RunAnalysis, ///< Run one or more source code analyses.
|
||||
|
|
|
@ -21,6 +21,7 @@ public:
|
|||
unsigned ShowLineMarkers : 1; ///< Show \#line markers.
|
||||
unsigned ShowMacroComments : 1; ///< Show comments, even in macros.
|
||||
unsigned ShowMacros : 1; ///< Print macro definitions.
|
||||
unsigned RewriteIncludes : 1; ///< Preprocess include directives only.
|
||||
|
||||
public:
|
||||
PreprocessorOutputOptions() {
|
||||
|
@ -29,6 +30,7 @@ public:
|
|||
ShowLineMarkers = 1;
|
||||
ShowMacroComments = 0;
|
||||
ShowMacros = 0;
|
||||
RewriteIncludes = 0;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -445,7 +445,6 @@ static const char *getActionName(frontend::ActionKind Kind) {
|
|||
case frontend::PrintPreamble: return "-print-preamble";
|
||||
case frontend::PrintPreprocessedInput: return "-E";
|
||||
case frontend::RewriteMacros: return "-rewrite-macros";
|
||||
case frontend::RewriteIncludes: return "-frewrite-includes";
|
||||
case frontend::RewriteObjC: return "-rewrite-objc";
|
||||
case frontend::RewriteTest: return "-rewrite-test";
|
||||
case frontend::RunAnalysis: return "-analyze";
|
||||
|
@ -1446,8 +1445,6 @@ static InputKind ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args,
|
|||
Opts.ProgramAction = frontend::PrintPreprocessedInput; break;
|
||||
case OPT_rewrite_macros:
|
||||
Opts.ProgramAction = frontend::RewriteMacros; break;
|
||||
case OPT_frewrite_includes:
|
||||
Opts.ProgramAction = frontend::RewriteIncludes; break;
|
||||
case OPT_rewrite_objc:
|
||||
Opts.ProgramAction = frontend::RewriteObjC; break;
|
||||
case OPT_rewrite_test:
|
||||
|
@ -2144,6 +2141,7 @@ static void ParsePreprocessorOutputArgs(PreprocessorOutputOptions &Opts,
|
|||
Opts.ShowLineMarkers = !Args.hasArg(OPT_P);
|
||||
Opts.ShowMacroComments = Args.hasArg(OPT_CC);
|
||||
Opts.ShowMacros = Args.hasArg(OPT_dM) || Args.hasArg(OPT_dD);
|
||||
Opts.RewriteIncludes = Args.hasArg(OPT_frewrite_includes);
|
||||
}
|
||||
|
||||
static void ParseTargetArgs(TargetOptions &Opts, ArgList &Args) {
|
||||
|
|
|
@ -71,9 +71,13 @@ static FrontendAction *CreateFrontendBaseAction(CompilerInstance &CI) {
|
|||
|
||||
case PrintDeclContext: return new DeclContextPrintAction();
|
||||
case PrintPreamble: return new PrintPreambleAction();
|
||||
case PrintPreprocessedInput: return new PrintPreprocessedAction();
|
||||
case PrintPreprocessedInput: {
|
||||
if (CI.getPreprocessorOutputOpts().RewriteIncludes)
|
||||
return new RewriteIncludesAction();
|
||||
return new PrintPreprocessedAction();
|
||||
}
|
||||
|
||||
case RewriteMacros: return new RewriteMacrosAction();
|
||||
case RewriteIncludes: return new RewriteIncludesAction();
|
||||
case RewriteObjC: return new RewriteObjCAction();
|
||||
case RewriteTest: return new RewriteTestAction();
|
||||
case RunAnalysis: return new ento::AnalysisAction();
|
||||
|
|
Loading…
Reference in New Issue