aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Corallo <andrea.corallo@arm.com>2020-04-09 15:34:50 +0100
committerAndrea Corallo <andrea.corallo@arm.com>2020-04-15 15:00:05 +0200
commit8a4436d89bfa0f731a48bf28d521f4b1b91014d7 (patch)
treef712dae7276ea1df5e1df38f4f2e074bf8f503dd
parent479ccabc33e25efefa9925320764c929b387a152 (diff)
downloadgcc-8a4436d89bfa0f731a48bf28d521f4b1b91014d7.zip
gcc-8a4436d89bfa0f731a48bf28d521f4b1b91014d7.tar.gz
gcc-8a4436d89bfa0f731a48bf28d521f4b1b91014d7.tar.bz2
aarch64: Fix valid_src_p for use of uninitialized value
2020-04-15 Andrea Corallo <andrea.corallo@arm.com> * config/aarch64/falkor-tag-collision-avoidance.c (valid_src_p): Check for aarch64_address_info type before accessing base field.
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/aarch64/falkor-tag-collision-avoidance.c6
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 80e21dc..55f2e96 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2020-04-15 Andrea Corallo <andrea.corallo@arm.com>
+
+ * config/aarch64/falkor-tag-collision-avoidance.c
+ (valid_src_p): Check for aarch64_address_info type before
+ accessing base field.
+
2020-04-15 Andre Vieira <andre.simoesdiasvieira@arm.com>
* config/arm/mve.md (mve_vec_duplicate<mode>): New pattern.
diff --git a/gcc/config/aarch64/falkor-tag-collision-avoidance.c b/gcc/config/aarch64/falkor-tag-collision-avoidance.c
index f850153..a96a332 100644
--- a/gcc/config/aarch64/falkor-tag-collision-avoidance.c
+++ b/gcc/config/aarch64/falkor-tag-collision-avoidance.c
@@ -538,7 +538,11 @@ valid_src_p (rtx src, rtx_insn *insn, struct loop *loop, bool *pre_post,
if (!aarch64_classify_address (&addr, XEXP (x, 0), mode, true))
return false;
- if (!REG_P (addr.base))
+ if (addr.type != ADDRESS_REG_IMM
+ && addr.type != ADDRESS_REG_WB
+ && addr.type != ADDRESS_REG_REG
+ && addr.type != ADDRESS_REG_UXTW
+ && addr.type != ADDRESS_REG_SXTW)
return false;
unsigned regno = REGNO (addr.base);