+2003-04-21 Mark Mitchell <mark@codesourcery.com>
+
+ * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL
+ have the same form as the old RTL.
+
2003-04-21 Andreas Jaeger <aj@suse.de>
* cppcharset.c (_cpp_valid_ucn): Cast field precision to int.
char *newname;
tree idp;
rtx rtlname;
+ rtx new_symbol;
rtlname = XEXP (DECL_RTL (decl), 0);
if (GET_CODE (rtlname) == SYMBOL_REF)
identical. */
idp = get_identifier (newname);
- XEXP (DECL_RTL (decl), 0)
- = gen_rtx_SYMBOL_REF (Pmode, IDENTIFIER_POINTER (idp));
+ new_symbol = gen_rtx_SYMBOL_REF (Pmode, IDENTIFIER_POINTER (idp));
+ XEXP (DECL_RTL (decl), 0)
+ = ((GET_CODE (XEXP (DECL_RTL (decl), 0)) == MEM)
+ ? gen_rtx (MEM, Pmode, new_symbol)
+ : new_symbol);
/* Can't treat a pointer to this as a constant address */
DECL_NON_ADDR_CONST_P (decl) = 1;