[PATCH] Fix building gdb with gcc-4.x
Simon Marchi
simon.marchi@polymtl.ca
Mon Jan 4 21:30:11 GMT 2021
On 2021-01-04 3:57 p.m., Bernd Edlinger wrote:
> Hi,
>
> with Luis' commit of today the trunk is no longer able to
> be compiled with gcc-4.x.
>
> The problem is std::is_trivially_default_constructible is
> not defined before gcc-5 although the compiler supports C++11
>
> I am not sure about what's the best approach for conditionally
> enabling the code, especially for compilers other than g++.
>
>
> This fixes the build for me.
> Is it OK for trunk?
>
>
> Thanks
> Bernd.
>
We have other instances of this, I'd suggest inspiring yourself from:
https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gdb/unittests/enum-flags-selftests.c;h=e3b6cf81d07f1eaefec72bce131d1c75ce00ef82;hb=HEAD#l66
These defines are defined here:
https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gdbsupport/traits.h;h=f545edbb0d93e95f65e954fbf54cbc8843e5239a;hb=HEAD#l28
As you see, we already have a HAVE_IS_TRIVIALLY_CONSTRUCTIBLE, we could
use it. The code in trad-frame.c could be changed to use
std::is_trivially_constructible instead of
std::is_trivially_default_constructible, I believe it's the same when
passing no Args... to is_trivially_constructible. See "Possible
implementation" in:
https://en.cppreference.com/w/cpp/types/is_default_constructible
Simon
More information about the Gdb-patches
mailing list