aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>2001-07-04 14:20:21 -0400
committerRichard Kenner <kenner@gcc.gnu.org>2001-07-04 14:20:21 -0400
commit2b1b6bf903b908e98ea861317289a3c15e0bd0df (patch)
tree1dc4db2ef792bbf2e548d464bcc5a5c8bd3f6be9 /gcc
parent98aff0b52ee9c65edf7099ac2a23b47ef813ea47 (diff)
downloadgcc-2b1b6bf903b908e98ea861317289a3c15e0bd0df.zip
gcc-2b1b6bf903b908e98ea861317289a3c15e0bd0df.tar.gz
gcc-2b1b6bf903b908e98ea861317289a3c15e0bd0df.tar.bz2
emit-rtl.c (change_address): Don't abort if invalid address while reload is in progress.
* emit-rtl.c (change_address): Don't abort if invalid address while reload is in progress. From-SVN: r43765
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/emit-rtl.c10
2 files changed, 16 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9283fa1..de559fb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jul 4 13:40:02 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * emit-rtl.c (change_address): Don't abort if invalid address while
+ reload is in progress.
+
2001-07-04 Daniel Berlin <dan@cgsoftware.com>
* c-lex.c (cb_file_change): Pass line number to
@@ -14,14 +19,16 @@
* toplev.h (debug_start_source_file): Add line number to
parameters.
- * dwarf2out.h (dwarf2out_start_source_file): Add line number to parameters.
+ * dwarf2out.h (dwarf2out_start_source_file): Add line number to
+ parameters.
* dwarf2out.c (dwarf2out_start_source_file): Add line number to
parameters.
Output debug_macinfo data for starting file if requested.
(dwarf2out_end_source_file): Output debug_macinfo data for ending
file if requested.
- (dwarf2out_define): Output debug_macinfo data for defining a macro if requested.
+ (dwarf2out_define): Output debug_macinfo data for defining a macro
+ if requested.
(dwarf2out_undef): Output debug_macinfo data for undefining a
macro if requested.
(DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name.
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index deca99b..107e75d 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -1584,9 +1584,13 @@ change_address (memref, mode, addr)
if (addr == 0)
addr = XEXP (memref, 0);
- /* If reload is in progress or has completed, ADDR must be valid.
- Otherwise, we can call memory_address to make it valid. */
- if (reload_completed || reload_in_progress)
+ /* If reload is in progress, don't check for validity of the address since we
+ assume the caller knows what they are doing. If reload has completed, the
+ address must be valid. Otherwise, we call memory_address to make it
+ valid. */
+ if (reload_in_progress)
+ ;
+ else if (reload_completed)
{
if (! memory_address_p (mode, addr))
abort ();