From mboxrd@z Thu Jan 1 00:00:00 1970 From: hjl@lucon.org (H.J. Lu) To: jason@cygnus.com (Jason Merrill) Cc: wilson@cygnus.com, egcs@cygnus.com, g++@cygnus.com Subject: Re: A new alpha bug Date: Tue, 16 Sep 1997 11:09:00 -0000 Message-id: References: X-SW-Source: 1997-09/msg00628.html > > BTW, both yours and Jim's patches sound like a kludge to me. > > I don't understand why it takes TImode to expose this bug. > > Is there a more subtle bug somehwhere else? Also how many > > other places do we have to change to make it work right > > for all cases? Is there a cleaner way to fix it? > > I don't imagine anyplace else needs to be changed. Bashing the RTL for a > variable is not a common operation. > I have seen places with TREE_ADDRESSABLE (init) = 1; DECL_RTL (init) = return_target; or something like it. Should they be replaces by DECL_RTL (init) = return_target; TREE_ADDRESSABLE (init) = 0; mark_addressable (init); Maybe we should make a function/macro out of it and use it: #define MARK_TREE_ADDRESSABLE(node) \ if (TREE_ADDRESSABLE ((node)) \ { \ TREE_ADDRESSABLE ((node)) = 0; mark_addressable ((node)); } TREE_ADDRESSABLE (init) = 1; DECL_RTL (init) = return_target; MARK_TREE_ADDRESSABLE (init); -- H.J. Lu (hjl@gnu.ai.mit.edu)