diff options
author | Erik Verbruggen <erikjv@me.com> | 2016-10-27 14:17:10 +0000 |
---|---|---|
committer | Erik Verbruggen <erikjv@me.com> | 2016-10-27 14:17:10 +0000 |
commit | e0bde7554ce04ef7af99c69d526882a56f54a928 (patch) | |
tree | a62a277df65a36bb68e905945eadb07a6b4efb70 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 7cc713adcb668c23cbac71cfd7f268dd5afb618d (diff) | |
download | bcm5719-llvm-e0bde7554ce04ef7af99c69d526882a56f54a928.tar.gz bcm5719-llvm-e0bde7554ce04ef7af99c69d526882a56f54a928.zip |
Do not print include_next/pragma once warnings when input is a header.
r276653 suppressed the pragma once warning when generating a PCH file.
This patch extends that to any main file for which clang is told (with
the -x option) that it's a header file. It will also suppress the
warning "#include_next in primary source file".
Differential Revision: http://reviews.llvm.org/D25989
llvm-svn: 285295
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 3f2e303b5c3..8588fa37810 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1111,7 +1111,8 @@ static bool parseTestModuleFileExtensionArg(StringRef Arg, } static InputKind ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, - DiagnosticsEngine &Diags) { + DiagnosticsEngine &Diags, + bool &IsHeaderFile) { using namespace options; Opts.ProgramAction = frontend::ParseSyntaxOnly; if (const Arg *A = Args.getLastArg(OPT_Action_Group)) { @@ -1358,6 +1359,13 @@ static InputKind ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, if (DashX == IK_None) Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << A->getValue(); + IsHeaderFile = llvm::StringSwitch<bool>(A->getValue()) + .Case("c-header", true) + .Case("cl-header", true) + .Case("objective-c-header", true) + .Case("c++-header", true) + .Case("objective-c++-header", true) + .Default(false); } // '-' is the default input if none is given. @@ -2415,7 +2423,8 @@ bool CompilerInvocation::CreateFromArgs(CompilerInvocation &Res, ParseCommentArgs(LangOpts.CommentOpts, Args); ParseFileSystemArgs(Res.getFileSystemOpts(), Args); // FIXME: We shouldn't have to pass the DashX option around here - InputKind DashX = ParseFrontendArgs(Res.getFrontendOpts(), Args, Diags); + InputKind DashX = ParseFrontendArgs(Res.getFrontendOpts(), Args, Diags, + LangOpts.IsHeaderFile); ParseTargetArgs(Res.getTargetOpts(), Args, Diags); Success &= ParseCodeGenArgs(Res.getCodeGenOpts(), Args, DashX, Diags, Res.getTargetOpts()); |