On 1/4/21 10:30 PM, Simon Marchi wrote: > 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 > Okay, good point. I updated the patch following your suggestion. Is the updated patch OK? Thanks Bernd.