Fix building gdb with gcc-4.x
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Mon, 4 Jan 2021 20:40:41 +0000 (21:40 +0100)
committerBernd Edlinger <bernd.edlinger@hotmail.de>
Thu, 14 Jan 2021 17:50:10 +0000 (18:50 +0100)
Since is_trivially_default_constructible was not implemented before gcc-5
it cannot be used with gcc-4.x.

Fix the build by using conditional compilation around that line.
Use the equivalent is_trivially_constructible<T> instead, since
we already have HAVE_IS_TRIVIALLY_CONSTRUCTIBLE for that purpose.

Fixes: 098caef485a ("Refactor struct trad_frame_saved_regs")
gdb:
2021-01-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>

* trad-frame.c (trad_frame_alloc_saved_regs): Avoid compile-error
because is_trivially_default_constructible was first implemented with
gcc-5.

gdb/ChangeLog
gdb/trad-frame.c

index c290957bd7d130683d8a1ec673ae0c26889309da..15d332cc85c2d2213919a1c453471524c4149a12 100644 (file)
@@ -1,3 +1,9 @@
+2021-01-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+
+       * trad-frame.c (trad_frame_alloc_saved_regs): Avoid compile-error
+       because is_trivially_default_constructible was first implemented with
+       gcc-5.
+
 2021-01-14  Tom de Vries  <tdevries@suse.de>
 
        PR breakpoints/27151
index 17375e83482c3286b294489d4daafb71291ed36d..3284c4523175dc5e706fdc64f014c7282b8c2ccf 100644 (file)
@@ -25,6 +25,7 @@
 #include "target.h"
 #include "value.h"
 #include "gdbarch.h"
+#include "gdbsupport/traits.h"
 
 struct trad_frame_cache
 {
@@ -60,7 +61,9 @@ trad_frame_reset_saved_regs (struct gdbarch *gdbarch,
 trad_frame_saved_reg *
 trad_frame_alloc_saved_regs (struct gdbarch *gdbarch)
 {
-  gdb_static_assert (std::is_trivially_default_constructible<trad_frame_saved_reg>::value);
+#ifdef HAVE_IS_TRIVIALLY_CONSTRUCTIBLE
+  gdb_static_assert (std::is_trivially_constructible<trad_frame_saved_reg>::value);
+#endif
 
   int numregs = gdbarch_num_cooked_regs (gdbarch);
   trad_frame_saved_reg *this_saved_regs