From 605b998bd5d81f160b87342ada74140b527fefa3 Mon Sep 17 00:00:00 2001 From: Joel Rosdahl Date: Thu, 15 Aug 2019 22:20:38 +0200 Subject: [PATCH] =?utf8?q?Don=E2=80=99t=20pass=20-Wno-error=20to=20the=20p?= =?utf8?q?reprocessor?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This is done to keep the argument order between -Werror and -Wno-error. Fixes #451. (cherry picked from commit 70986342c8948ac2ae974ee98efbcd6865003dc1) --- doc/NEWS.adoc | 5 ++++- src/compopt.cpp | 1 + unittest/test_argument_processing.cpp | 8 ++++---- 3 files changed, 9 insertions(+), 5 deletions(-) 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; -- 2.47.3