[COMIITTED] Testsuite: Make dependence on -fdelete-null-pointer-checks explicit

Jonathan Wakely jwakely@redhat.com
Mon Jan 10 11:45:14 GMT 2022


CC libstdc++ and Jakub.

On 08/01/22 23:22 -0700, Sandra Loosemore wrote:
>I've checked in these tweaks for various testcases that fail on
>nios2-elf without an explicit -fdelete-null-pointer-checks option.  This
>target is configured to build with that optimization off by default.
>
>-Sandra
>
>commit 04c69d0e61c0f98a010d77a79ab749d5f0aa6b67
>Author: Sandra Loosemore <sandra@codesourcery.com>
>Date:   Sat Jan 8 22:02:13 2022 -0800
>
>    Testsuite: Make dependence on -fdelete-null-pointer-checks explicit
>
>    nios2-elf target defaults to -fno-delete-null-pointer-checks, breaking
>    tests that implicitly depend on that optimization.  Add the option
>    explicitly on these tests.
>
>    2022-01-08  Sandra Loosemore  <sandra@codesourcery.com>
>
>    	gcc/testsuite/
>    	* g++.dg/cpp0x/constexpr-compare1.C: Add explicit
>    	-fdelete-null-pointer-checks option.
>    	* g++.dg/cpp0x/constexpr-compare2.C: Likewise.
>    	* g++.dg/cpp0x/constexpr-typeid2.C: Likewise.
>    	* g++.dg/cpp1y/constexpr-94716.C: Likewise.
>    	* g++.dg/cpp1z/constexpr-compare1.C: Likewise.
>    	* g++.dg/cpp1z/constexpr-if36.C: Likewise.
>    	* gcc.dg/init-compare-1.c: Likewise.
>
>    	libstdc++-v3/
>    	* testsuite/18_support/type_info/constexpr.cc: Add explicit
>    	-fdelete-null-pointer-checks option.

This test should not be doing anything with null pointers. Instead of
working around the error on nios2-elf, I think the front-end needs
fixing.

Maybe something is not being folded early enough for the constexpr
evaluation to work. Jakub?

$ g++ -std=gnu++23  ~/src/gcc/gcc/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc -c -fno-delete-null-pointer-checks
/home/jwakely/src/gcc/gcc/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc:49:22: error: non-constant condition for static assertion
    49 | static_assert( test01() );
       |                ~~~~~~^~
In file included from /home/jwakely/src/gcc/gcc/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc:5:
/home/jwakely/src/gcc/gcc/libstdc++-v3/testsuite/18_support/type_info/constexpr.cc:49:22:   in 'constexpr' expansion of 'test01()'
/home/jwakely/gcc/12/include/c++/12.0.0/typeinfo:196:19: error: '(((const std::type_info*)(& _ZTIi)) == ((const std::type_info*)(& _ZTIl)))' is not a constant expression
   196 |       return this == &__arg;
       |              ~~~~~^~~~~~~~~





More information about the Libstdc++ mailing list