From 3385d437fe1e17b7ba4735b5b6869e2153bfb506 Mon Sep 17 00:00:00 2001 From: Bernd Edlinger Date: Mon, 19 Sep 2016 21:57:46 +0000 Subject: [PATCH] re PR other/77421 (Bugs found in GCC with the help of PVS-Studio) 2016-09-19 Bernd Edlinger PR middle-end/77421 * dwarf2out.c (output_loc_operands): Fix an assertion. From-SVN: r240250 --- gcc/ChangeLog | 5 +++++ gcc/dwarf2out.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b5fc9cb59b..5011595c5b9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-09-19 Bernd Edlinger + + PR middle-end/77421 + * dwarf2out.c (output_loc_operands): Fix an assertion. + 2016-09-19 Joseph Myers * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__] diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 434a2fc8b5a..10f8ba93a15 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -2051,9 +2051,9 @@ output_loc_operands (dw_loc_descr_ref loc, int for_eh_or_skip) /* Make sure the offset has been computed and that we can encode it as an operand. */ gcc_assert (die_offset > 0 - && die_offset <= (loc->dw_loc_opc == DW_OP_call2) + && die_offset <= (loc->dw_loc_opc == DW_OP_call2 ? 0xffff - : 0xffffffff); + : 0xffffffff)); dw2_asm_output_data ((loc->dw_loc_opc == DW_OP_call2) ? 2 : 4, die_offset, NULL); } -- 2.30.2