From: Mark Wielaard Date: Tue, 22 Dec 2020 13:51:15 +0000 (+0100) Subject: expr_is_guardable doesn't handle Iex_Qop X-Git-Tag: VALGRIND_3_17_0~85 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=42ef710e1928275c98ff72cd82bc5e6b05fe8295;p=thirdparty%2Fvalgrind.git expr_is_guardable doesn't handle Iex_Qop IRExpr_Qop uses the Iex_Qop tag, which expr_is_guardable didn't handle. https://bugs.kde.org/show_bug.cgi?id=430485 --- diff --git a/NEWS b/NEWS index 9dae3a2702..c1de304ee7 100644 --- a/NEWS +++ b/NEWS @@ -80,6 +80,7 @@ n-i-bz helgrind: If hg_cli__realloc fails, return NULL. 429864 s390x: C++ atomic test_and_set yields false-positive memcheck diagnostics 430354 ppc stxsibx and stxsihx instructions write too much data +430485 expr_is_guardable doesn't handle Iex_Qop Release 3.16.1 (?? June 2020) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/VEX/priv/guest_generic_bb_to_IR.c b/VEX/priv/guest_generic_bb_to_IR.c index 0cee970e43..1e72ddacd6 100644 --- a/VEX/priv/guest_generic_bb_to_IR.c +++ b/VEX/priv/guest_generic_bb_to_IR.c @@ -422,6 +422,8 @@ static Bool expr_is_guardable ( const IRExpr* e ) return !primopMightTrap(e->Iex.Binop.op); case Iex_Triop: return !primopMightTrap(e->Iex.Triop.details->op); + case Iex_Qop: + return !primopMightTrap(e->Iex.Qop.details->op); case Iex_ITE: case Iex_CCall: case Iex_Get: