From 9fccf84d32c69218dd33b99cfb530767a3d33242 Mon Sep 17 00:00:00 2001
From: jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 16 Apr 2005 10:37:29 +0000
Subject: [PATCH] 	PR middle-end/20491 	* config/ia64/ia64.c
 (rtx_needs_barrier): Recurse instead of 	falling through from SUBREG
 case to REG.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98225 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog          | 6 ++++++
 gcc/config/ia64/ia64.c | 4 ++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f3ba578fd78b..1c218f09a2d8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
+
+	PR middle-end/20491
+	* config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
+	falling through from SUBREG case to REG.
+
 2005-04-15  Roger Sayle  <roger@eyesopen.com>
 
 	* fold-const.c (fold_relational_hi_lo): Delete function and prototype.
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 55fde10d029b..82dff03f36c7 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -5196,8 +5196,8 @@ rtx_needs_barrier (rtx x, struct reg_flags flags, int pred)
       break;
 
     case SUBREG:
-      x = SUBREG_REG (x);
-      /* FALLTHRU */
+      need_barrier |= rtx_needs_barrier (SUBREG_REG (x), flags, pred);
+      break;
     case REG:
       if (REGNO (x) == AR_UNAT_REGNUM)
 	{
-- 
GitLab