From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 60247 invoked by alias); 10 Dec 2019 20:59:52 -0000 Mailing-List: contact glibc-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: , Sender: glibc-cvs-owner@sourceware.org List-Subscribe: Received: (qmail 60202 invoked by uid 9587); 10 Dec 2019 20:59:51 -0000 Date: Tue, 10 Dec 2019 20:59:00 -0000 Message-ID: <20191210205951.60201.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Carlos O'Donell To: glibc-cvs@sourceware.org Subject: [glibc] Fix failure when CFLAGS contains -DNDEBUG (Bug 25251) X-Act-Checkin: glibc X-Git-Author: Carlos O'Donell X-Git-Refname: refs/heads/master X-Git-Oldrev: 0487ebed2278b20971af4cabf186fd3681adccf0 X-Git-Newrev: 83fe078130f62c35fcceab7133fa4b1512925951 X-SW-Source: 2019-q4/txt/msg00556.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=83fe078130f62c35fcceab7133fa4b1512925951 commit 83fe078130f62c35fcceab7133fa4b1512925951 Author: Carlos O'Donell Date: Tue Dec 3 15:42:24 2019 -0500 Fix failure when CFLAGS contains -DNDEBUG (Bug 25251) Building tests with -DNDEBUG in CFLAGS, gcc 9.2.1 issues the following error: tst-assert-c++.cc: In function ‘int do_test()’: tst-assert-c++.cc:66:12: error: unused variable ‘value’ [-Werror=unused-variable] 66 | no_int value; | ^~~~~ tst-assert-c++.cc:71:18: error: unused variable ‘value’ [-Werror=unused-variable] 71 | bool_and_int value; | ^~~~~ The assert has been disabled by building glibc with CFLAGS, CXXFLAGS, and CPPFLAGS with -DNDEBUG which removes the assert and leaves the value unused. We never want the assert disabled because that's the point of the test, so we undefine NDEBUG before including assert.h to ensure that we get assert correctly defined. Diff: --- assert/tst-assert-c++.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/assert/tst-assert-c++.cc b/assert/tst-assert-c++.cc index 41cb487..c01fc8b 100644 --- a/assert/tst-assert-c++.cc +++ b/assert/tst-assert-c++.cc @@ -16,6 +16,9 @@ License along with the GNU C Library; if not, see . */ +/* Undefine NDEBUG to ensure the build system e.g. CFLAGS/CXXFLAGS + does not disable the asserts we want to test. */ +#undef NDEBUG #include /* The C++ standard requires that if the assert argument is a constant