From: Bernd Edlinger Date: Sun, 16 Feb 2020 20:43:33 +0000 (+0100) Subject: Fix build with gcc-4.8.x X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6d0cf4464e;p=binutils-gdb.git Fix build with gcc-4.8.x Use an explicit conversion from unique_ptr to displaced_step_closure_up to avoid a compiler bug with gcc-4.8.4: ../../binutils-gdb/gdb/amd64-tdep.c:1514:10: error: cannot bind 'std::unique_ptr' lvalue to 'std::unique_ptr&&' gdb: 2020-02-18 Bernd Edlinger * aarch64-tdep.c (aarch64_displaced_step_copy_insn): Use an explicit conversion. * amd64-tdep.c (amd64_displaced_step_copy_insn): Likewise. * arm-linux-tdep.c (arm_linux_displaced_step_copy_insn): Likewise. * i386-tdep.c (i386_displaced_step_copy_insn): Likewise. * rs6000-tdep.c (ppc_displaced_step_copy_insn): Likewise. * s390-tdep.c (s390_displaced_step_copy_insn): Likewise. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f5c15bda697..ee7298b6875 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2020-02-18 Bernd Edlinger + + * aarch64-tdep.c (aarch64_displaced_step_copy_insn): Use an explicit + conversion. + * amd64-tdep.c (amd64_displaced_step_copy_insn): Likewise. + * arm-linux-tdep.c (arm_linux_displaced_step_copy_insn): Likewise. + * i386-tdep.c (i386_displaced_step_copy_insn): Likewise. + * rs6000-tdep.c (ppc_displaced_step_copy_insn): Likewise. + * s390-tdep.c (s390_displaced_step_copy_insn): Likewise. + 2020-02-18 Simon Marchi * MAINTAINERS: Change palmer@sifive.com to palmer@dabbelt.com. diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index bfacfb05b21..31b90c89c7c 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -3053,7 +3053,8 @@ aarch64_displaced_step_copy_insn (struct gdbarch *gdbarch, dsc = NULL; } - return dsc; + /* This is a work around for a problem with g++ 4.8. */ + return displaced_step_closure_up (dsc.release ()); } /* Implement the "displaced_step_fixup" gdbarch method. */ diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c index 9264fe4026d..5c56a970d8c 100644 --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c @@ -1511,7 +1511,8 @@ amd64_displaced_step_copy_insn (struct gdbarch *gdbarch, displaced_step_dump_bytes (gdb_stdlog, buf, len); } - return dsc; + /* This is a work around for a problem with g++ 4.8. */ + return displaced_step_closure_up (dsc.release ()); } static int diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c index ccb556babb0..f60cb51763f 100644 --- a/gdb/arm-linux-tdep.c +++ b/gdb/arm-linux-tdep.c @@ -1131,7 +1131,8 @@ arm_linux_displaced_step_copy_insn (struct gdbarch *gdbarch, arm_displaced_init_closure (gdbarch, from, to, dsc.get ()); - return dsc; + /* This is a work around for a problem with g++ 4.8. */ + return displaced_step_closure_up (dsc.release ()); } /* Implementation of `gdbarch_stap_is_single_operand', as defined in diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 9771421c86b..19876c35535 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -831,7 +831,8 @@ i386_displaced_step_copy_insn (struct gdbarch *gdbarch, displaced_step_dump_bytes (gdb_stdlog, buf, len); } - return closure; + /* This is a work around for a problem with g++ 4.8. */ + return displaced_step_closure_up (closure.release ()); } /* Fix up the state of registers and memory after having single-stepped diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index 513ce6a34fc..2c41e1c858b 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -894,7 +894,8 @@ ppc_displaced_step_copy_insn (struct gdbarch *gdbarch, displaced_step_dump_bytes (gdb_stdlog, buf, len); } - return closure; + /* This is a work around for a problem with g++ 4.8. */ + return displaced_step_closure_up (closure.release ()); } /* Fix up the state of registers and memory after having single-stepped diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c index 51d0203231f..d8c28c72e49 100644 --- a/gdb/s390-tdep.c +++ b/gdb/s390-tdep.c @@ -477,7 +477,8 @@ s390_displaced_step_copy_insn (struct gdbarch *gdbarch, displaced_step_dump_bytes (gdb_stdlog, buf, len); } - return closure; + /* This is a work around for a problem with g++ 4.8. */ + return displaced_step_closure_up (closure.release ()); } /* Fix up the state of registers and memory after having single-stepped