aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorToon Moene <toon@moene.indiv.nluug.nl>2001-05-10 20:52:28 +0200
committerToon Moene <toon@gcc.gnu.org>2001-05-10 18:52:28 +0000
commit79cdfa4b2951048126a0c888721b608a8c986d20 (patch)
treef6eddad76d862d0c76b8eb8526d6296ad61c281a /gcc
parentdf33e4e18e936c5ec0c03dc56231b1bd1ff7ce13 (diff)
downloadgcc-79cdfa4b2951048126a0c888721b608a8c986d20.zip
gcc-79cdfa4b2951048126a0c888721b608a8c986d20.tar.gz
gcc-79cdfa4b2951048126a0c888721b608a8c986d20.tar.bz2
dwarf2out.c (mem_loc_descriptor): Do not pass constant pool contents for a SYMBOL_REF in case of floating point...
2001-05-10 Toon Moene <toon@moene.indiv.nluug.nl> * dwarf2out.c (mem_loc_descriptor): Do not pass constant pool contents for a SYMBOL_REF in case of floating point constants. From-SVN: r41945
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarf2out.c10
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 11bf8a5..1553e01 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2001-05-10 Toon Moene <toon@moene.indiv.nluug.nl>
+
+ * dwarf2out.c (mem_loc_descriptor): Do not pass constant pool
+ contents for a SYMBOL_REF in case of floating point constants.
+
2001-05-10 DJ Delorie <dj@redhat.com>
* c-common.c (combine_strings): Widen strings in a
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index b709d07..5952936 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -7120,8 +7120,14 @@ mem_loc_descriptor (rtl, mode)
/* Alternatively, the symbol in the constant pool can be referenced
by a different symbol. */
if (GET_CODE (rtl) == SYMBOL_REF
- && CONSTANT_POOL_ADDRESS_P (rtl))
- rtl = get_pool_constant (rtl);
+ && CONSTANT_POOL_ADDRESS_P (rtl))
+ {
+ rtx tmp = get_pool_constant (rtl);
+ /* Doesn't work for floating point constants. */
+ if (! (GET_CODE (tmp) == CONST_DOUBLE && GET_MODE (tmp) != VOIDmode))
+ rtl = tmp;
+ }
+
mem_loc_result = new_loc_descr (DW_OP_addr, 0, 0);
mem_loc_result->dw_loc_oprnd1.val_class = dw_val_class_addr;