aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2011-03-17 19:51:03 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2011-03-17 12:51:03 -0700
commitfe58e02b2255c2e0b8258484689e9afc8598fcc0 (patch)
tree400fd705981724f0d5f15249d7546ef4f7a96d8f /gcc
parent6fc4dbc7299200a5396d45bf0b9ae7cc288b9e69 (diff)
downloadgcc-fe58e02b2255c2e0b8258484689e9afc8598fcc0.zip
gcc-fe58e02b2255c2e0b8258484689e9afc8598fcc0.tar.gz
gcc-fe58e02b2255c2e0b8258484689e9afc8598fcc0.tar.bz2
Check SUBREG in prepare_call_arguments.
2011-03-17 H.J. Lu <hongjiu.lu@intel.com> PR debug/48160 * var-tracking.c (prepare_call_arguments): Check SUBREG. From-SVN: r171108
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/var-tracking.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7d028f7..887e014c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
+ PR debug/48160
+ * var-tracking.c (prepare_call_arguments): Check SUBREG.
+
+2011-03-17 H.J. Lu <hongjiu.lu@intel.com>
+
PR target/48171
* config/i386/i386.opt: Add Save to -mavx and -mfma.
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index aab9833..7c4c2c5 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -5770,7 +5770,11 @@ prepare_call_arguments (basic_block bb, rtx insn)
/* Try harder, when passing address of a constant
pool integer it can be easily read back. */
- val = CSELIB_VAL_PTR (XEXP (item, 1));
+ item = XEXP (item, 1);
+ if (GET_CODE (item) == SUBREG)
+ item = SUBREG_REG (item);
+ gcc_assert (GET_CODE (item) == VALUE);
+ val = CSELIB_VAL_PTR (item);
for (l = val->locs; l; l = l->next)
if (GET_CODE (l->loc) == SYMBOL_REF
&& TREE_CONSTANT_POOL_ADDRESS_P (l->loc)