This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v4] Fix failure when CFLAGS contains -DNDEBUG (Bug 25251)


On 12/10/19 11:57 AM, Florian Weimer wrote:
> * Carlos O'Donell:
> 
>> 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.
>> ---
>>  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 41cb487512..c01fc8bd25 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
>>     <https://www.gnu.org/licenses/>.  */
>>  
>> +/* Undefine NDEBUG to ensure the build system e.g. CFLAGS/CXXFLAGS
>> +   does not disable the asserts we want to test.  */
>> +#undef NDEBUG
>>  #include <assert.h>
>>  
>>  /* The C++ standard requires that if the assert argument is a constant
> 
> Looks good to me.

Thanks. Pushed.

-- 
Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]