From: Christian Biesinger Date: Wed, 18 Dec 2019 23:56:17 +0000 (-0600) Subject: Make the literal argument to pow a double, not an integer X-Git-Tag: binutils-2_34~372 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d411762c45d66b64c5cbfc8a9f004b1f2e1fba4b;p=thirdparty%2Fbinutils-gdb.git Make the literal argument to pow a double, not an integer Since pow takes doubles, pass 2.0 instead of 2 to pow (). Conveniently, this fixes the ambiguous call to pow on Solaris 11 with gcc 5.5 (gcc211 on the compile farm), which has a "using std::pow" directive in a system header, which brings in float/double/long double overloads. Fixes the build on Solaris with enable-targets=all. gdb/ChangeLog: 2019-12-19 Christian Biesinger * score-tdep.c (score7_analyze_prologue): Pass 2.0 instead of 2 to pow (). Change-Id: Ib18e7e4749ddcbff0727b72a31198f8cb84d1993 --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8595b6eafce..60930a790f9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2019-12-19 Christian Biesinger + + * score-tdep.c (score7_analyze_prologue): Pass 2.0 instead of + 2 to pow (). + 2019-12-19 Christian Biesinger * tui/tui-source.c (tui_source_window::set_contents): Cast argument of diff --git a/gdb/score-tdep.c b/gdb/score-tdep.c index 5ca763c40f4..b8abe3d890a 100644 --- a/gdb/score-tdep.c +++ b/gdb/score-tdep.c @@ -918,13 +918,15 @@ score7_analyze_prologue (CORE_ADDR startaddr, CORE_ADDR pc, && G_FLD (inst->v, 2, 0) == 0x0) { /* subei! r0, n */ - sp_offset += (int) pow (2, G_FLD (inst->v, 6, 3)); + sp_offset += (int) pow (2.0, G_FLD (inst->v, 6, 3)); } else if (G_FLD (inst->v, 14, 7) == 0xc0 && G_FLD (inst->v, 2, 0) == 0x0) { /* addei! r0, n */ - sp_offset -= (int) pow (2, G_FLD (inst->v, 6, 3)); + /* Solaris 11+gcc 5.5 has ambiguous overloads of pow, so we + pass 2.0 instead of 2 to get the right one. */ + sp_offset -= (int) pow (2.0, G_FLD (inst->v, 6, 3)); } } else