diff mbox series

[pushed] compare-elim: Fix an RTL checking failure

Message ID mptedr9g165.fsf@arm.com
State New
Headers show
Series [pushed] compare-elim: Fix an RTL checking failure | expand

Commit Message

Richard Sandiford Feb. 1, 2023, 9:55 a.m. UTC
find_flags_uses_in_insn used SET_SRC without first checking
for a SET.  This showed up as an RTL checking failure in
g++.dg/torture/pr90994.C on aarch64.

Tested on aarch64-linux-gnu & pushed as obvious.

Richard


gcc/
	* compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
---
 gcc/compare-elim.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/gcc/compare-elim.cc b/gcc/compare-elim.cc
index 5cbd2c027b1..c59dc0cf5a5 100644
--- a/gcc/compare-elim.cc
+++ b/gcc/compare-elim.cc
@@ -254,7 +254,8 @@  find_flags_uses_in_insn (struct comparison *cmp, rtx_insn *insn)
 	x = PATTERN (insn);
 	if (GET_CODE (x) == PARALLEL)
 	  x = XVECEXP (x, 0, 0);
-	x = SET_SRC (x);
+	if (GET_CODE (x) == SET)
+	  x = SET_SRC (x);
 	if (GET_CODE (x) == IF_THEN_ELSE)
 	  x = XEXP (x, 0);
 	if (COMPARISON_P (x)