2
0
mirror of git://gcc.gnu.org/git/gcc.git synced 2025-04-18 06:10:24 +08:00

d: Fix regression, all 32-bit execution tests FAIL: internal error printing module cycle

For 32-bit btr(), BIT_NOT_EXPR was being generated twice, something that
was not seen with the 64-bit variant.  Removed the second call to fix
the generated code.

gcc/d/ChangeLog:

	PR d/96393
	* intrinsics.cc (expand_intrinsic_bt): Don't generate BIT_NOT_EXPR for
	btr32 intrinsic.
This commit is contained in:
Iain Buclaw 2020-07-31 16:03:17 +02:00
parent df5cf47a97
commit 239724956d

@ -351,9 +351,6 @@ expand_intrinsic_bt (intrinsic_code intrinsic, tree callexp)
}
/* ptr[bitnum / size] op= mask; */
if (intrinsic == INTRINSIC_BTR)
bitnum = fold_build1 (BIT_NOT_EXPR, TREE_TYPE (bitnum), bitnum);
ptr = modify_expr (ptr, fold_build2 (code, TREE_TYPE (ptr), ptr, bitnum));
/* Store the condition result in a temporary, and return expressions in