[PATCH] libstdc++: Fix -fno-exceptions support in testsuite_allocator.h

Patrick Palka ppalka@redhat.com
Thu May 28 13:40:43 GMT 2026


On Thu, 28 May 2026, Patrick Palka wrote:

> OK for trunk?
> 
> -- >8 --
> 
> This fixes the error
> 
> .../testsuite_allocator.h:402:13: error: exception handling disabled, use ‘-fexceptions’ to enable
>   402 |             catch(...)
>       |             ^~~~~
> 
> seen when running some C++23 library tests with -fno-exceptions.

Huh, I wonder why we complain about this unguarded catch but not about
the one inside uneq_allocator::allocate a few lines above...

> 
> libstdc++-v3/ChangeLog:
> 
> 	* testsuite/util/testsuite_allocator.h
> 	(uneq_allocator::allocate_at_least): Guard try/catch with
> 	__cpp_exceptions.
> ---
>  libstdc++-v3/testsuite/util/testsuite_allocator.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h
> index 27372a97161d..cb8e9bc01bb9 100644
> --- a/libstdc++-v3/testsuite/util/testsuite_allocator.h
> +++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h
> @@ -394,16 +394,20 @@ namespace __gnu_test
>  	  { return r; }
>  	else
>  	  {
> +#if __cpp_exceptions
>  	    try
> +#endif
>  	      {
>  		get_map().insert(map_type::value_type(
>  		      reinterpret_cast<void*>(r.ptr), personality));
>  	      }
> +#if __cpp_exceptions
>  	    catch(...)
>  	      {
>  		AllocTraits::deallocate(*this, r.ptr, r.count);
>  		__throw_exception_again;
>  	      }
> +#endif
>  	    return r;
>  	  }
>        }
> -- 
> 2.54.0.rc1.54.g60f07c4f5c
> 
> 


More information about the Libstdc++ mailing list