From: Joel Rosdahl Date: Tue, 21 Jul 2020 17:45:58 +0000 (+0200) Subject: Allow (require) argument to -Werror for NVCC X-Git-Tag: v4.0~308 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=845c7780bc3a9b61282428dd675f69f474e69fec;p=thirdparty%2Fccache.git Allow (require) argument to -Werror for NVCC Fixes #598. (cherry picked from commit c5349149864104146dab2c9bcd67a1b2ff565f06) --- diff --git a/src/argprocessing.cpp b/src/argprocessing.cpp index d81a9d3a8..e072017ea 100644 --- a/src/argprocessing.cpp +++ b/src/argprocessing.cpp @@ -311,7 +311,9 @@ process_arg(Context& ctx, // Handle options that should not be passed to the preprocessor. if (compopt_affects_comp(args[i])) { state.compiler_only_args.push_back(args[i]); - if (compopt_takes_arg(args[i])) { + if (compopt_takes_arg(args[i]) + || (ctx.guessed_compiler == GuessedCompiler::nvcc + && args[i] == "-Werror")) { if (i == args.size() - 1) { cc_log("Missing argument to %s", args[i].c_str()); return STATS_ARGS; diff --git a/src/ccache.cpp b/src/ccache.cpp index 6bb9235d6..f7f27ef3b 100644 --- a/src/ccache.cpp +++ b/src/ccache.cpp @@ -1524,7 +1524,7 @@ calculate_result_name(Context& ctx, if ((args[i] == "-ccbin" || args[i] == "--compiler-bindir") && i + 1 < args.size()) { - auto st = Stat::stat(args[i + 1], Stat::OnError::log); + auto st = Stat::stat(args[i + 1]); if (st) { found_ccbin = true; hash.hash_delimiter("ccbin"); diff --git a/test/suites/nvcc.bash b/test/suites/nvcc.bash index 3ee5c3178..1e8cb9be0 100644 --- a/test/suites/nvcc.bash +++ b/test/suites/nvcc.bash @@ -286,6 +286,19 @@ nvcc_tests() { expect_stat 'cache miss' 1 expect_stat 'files in cache' 1 expect_equal_files reference_test1.o test_cpp.o + + # ------------------------------------------------------------------------- + TEST "Option -Werror" + + $ccache_nvcc_cpp -Werror cross-execution-space-call test_cpp.cu + expect_stat 'cache hit (preprocessed)' 0 + expect_stat 'cache miss' 1 + expect_stat 'files in cache' 1 + + $ccache_nvcc_cpp -Werror cross-execution-space-call test_cpp.cu + expect_stat 'cache hit (preprocessed)' 1 + expect_stat 'cache miss' 1 + expect_stat 'files in cache' 1 } SUITE_nvcc_PROBE() {