aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--clang/lib/Frontend/CompilerInvocation.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp
index 9e9eed4..1df5038 100644
--- a/clang/lib/Frontend/CompilerInvocation.cpp
+++ b/clang/lib/Frontend/CompilerInvocation.cpp
@@ -2435,13 +2435,25 @@ static bool ParseDependencyOutputArgs(DependencyOutputOptions &Opts,
// Check for invalid combinations of header-include-format
// and header-include-filtering.
- if ((Opts.HeaderIncludeFormat == HIFMT_Textual &&
- Opts.HeaderIncludeFiltering != HIFIL_None) ||
- (Opts.HeaderIncludeFormat == HIFMT_JSON &&
- Opts.HeaderIncludeFiltering != HIFIL_Only_Direct_System))
- Diags.Report(diag::err_drv_print_header_env_var_combination_cc1)
- << Args.getLastArg(OPT_header_include_format_EQ)->getValue()
- << Args.getLastArg(OPT_header_include_filtering_EQ)->getValue();
+ if (Opts.HeaderIncludeFormat == HIFMT_Textual &&
+ Opts.HeaderIncludeFiltering != HIFIL_None) {
+ if (Args.hasArg(OPT_header_include_format_EQ))
+ Diags.Report(diag::err_drv_print_header_cc1_invalid_combination)
+ << headerIncludeFormatKindToString(Opts.HeaderIncludeFormat)
+ << headerIncludeFilteringKindToString(Opts.HeaderIncludeFiltering);
+ else
+ Diags.Report(diag::err_drv_print_header_cc1_invalid_filtering)
+ << headerIncludeFilteringKindToString(Opts.HeaderIncludeFiltering);
+ } else if (Opts.HeaderIncludeFormat == HIFMT_JSON &&
+ Opts.HeaderIncludeFiltering == HIFIL_None) {
+ if (Args.hasArg(OPT_header_include_filtering_EQ))
+ Diags.Report(diag::err_drv_print_header_cc1_invalid_combination)
+ << headerIncludeFormatKindToString(Opts.HeaderIncludeFormat)
+ << headerIncludeFilteringKindToString(Opts.HeaderIncludeFiltering);
+ else
+ Diags.Report(diag::err_drv_print_header_cc1_invalid_format)
+ << headerIncludeFormatKindToString(Opts.HeaderIncludeFormat);
+ }
return Diags.getNumErrors() == NumErrorsBefore;
}