From: Joel Rosdahl Date: Thu, 15 Aug 2019 20:20:38 +0000 (+0200) Subject: Don’t pass -Wno-error to the preprocessor X-Git-Tag: v4.0~832 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=605b998bd5d81f160b87342ada74140b527fefa3;p=thirdparty%2Fccache.git Don’t pass -Wno-error to the preprocessor This is done to keep the argument order between -Werror and -Wno-error. Fixes #451. (cherry picked from commit 70986342c8948ac2ae974ee98efbcd6865003dc1) --- diff --git a/doc/NEWS.adoc b/doc/NEWS.adoc index c0bb8bdd1..dbe3829ae 100644 --- a/doc/NEWS.adoc +++ b/doc/NEWS.adoc @@ -27,8 +27,11 @@ High-level summary of changes (work in progress) - (More to be written.) +- Fixed a regression in 3.7.2 when using the compiler option “-Werror” and then + “-Wno-error” later on the command line. -ccache 3.7.2 + +ccache 4.7.2 ------------ Release date: 2019-07-19 diff --git a/src/compopt.cpp b/src/compopt.cpp index 0bb036451..933671126 100644 --- a/src/compopt.cpp +++ b/src/compopt.cpp @@ -79,6 +79,7 @@ static const struct compopt compopts[] = { {"-Wa,", TAKES_CONCAT_ARG | AFFECTS_COMP}, {"-Werror", AFFECTS_COMP}, // don't exit with error when preprocessing {"-Wl,", TAKES_CONCAT_ARG | AFFECTS_COMP}, + {"-Wno-error", AFFECTS_COMP}, {"-Xassembler", TAKES_ARG | TAKES_CONCAT_ARG | AFFECTS_COMP}, {"-Xclang", TAKES_ARG}, {"-Xlinker", TAKES_ARG | TAKES_CONCAT_ARG | AFFECTS_COMP}, diff --git a/unittest/test_argument_processing.cpp b/unittest/test_argument_processing.cpp index c42a4895b..0ace9fa25 100644 --- a/unittest/test_argument_processing.cpp +++ b/unittest/test_argument_processing.cpp @@ -489,10 +489,10 @@ TEST(debug_flag_order_with_known_option_last) TEST(options_not_to_be_passed_to_the_preprocesor) { struct args* orig = args_init_from_string( - "cc -Wa,foo foo.c -g -Xlinker fie -Xlinker,fum -c -Werror"); - struct args* exp_cpp = args_init_from_string("cc -g"); - struct args* exp_cc = - args_init_from_string("cc -g -Wa,foo -Xlinker fie -Xlinker,fum -Werror -c"); + "cc -Wa,foo foo.c -g -c -DX -Werror -Xlinker fie -Xlinker,fum -Wno-error"); + struct args* exp_cpp = args_init_from_string("cc -g -DX"); + struct args* exp_cc = args_init_from_string( + "cc -g -Wa,foo -Werror -Xlinker fie -Xlinker,fum -Wno-error -DX -c"); struct args* act_cpp = NULL; struct args* act_cc = NULL;