diff options
author | dnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-13 06:41:07 +0000 |
---|---|---|
committer | dnovillo <dnovillo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-05-13 06:41:07 +0000 |
commit | 4ee9c6840ad3fc92a9034343278a1e476ad6872a (patch) | |
tree | a2568888a519c077427b133de9ece5879a8484a5 /gcc/emit-rtl.c | |
parent | ebb338380ab170c91e64d38038e6b5ce930d69a1 (diff) | |
download | gcc-4ee9c6840ad3fc92a9034343278a1e476ad6872a.tar.gz |
Merge tree-ssa-20020619-branch into mainline.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81764 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index d7633e5a816..ba8a3d6cf24 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -929,6 +929,17 @@ get_first_label_num (void) { return first_label_num; } + +/* If the rtx for label was created during the expansion of a nested + function, then first_label_num won't include this label number. + Fix this now so that array indicies work later. */ + +void +maybe_set_first_label_num (rtx x) +{ + if (CODE_LABEL_NUMBER (x) < first_label_num) + first_label_num = CODE_LABEL_NUMBER (x); +} /* Return the final regno of X, which is a SUBREG of a hard register. */ @@ -2387,8 +2398,8 @@ copy_most_rtx (rtx orig, rtx may_share) RTX_FLAG (copy, in_struct) = RTX_FLAG (orig, in_struct); RTX_FLAG (copy, volatil) = RTX_FLAG (orig, volatil); RTX_FLAG (copy, unchanging) = RTX_FLAG (orig, unchanging); - RTX_FLAG (copy, integrated) = RTX_FLAG (orig, integrated); RTX_FLAG (copy, frame_related) = RTX_FLAG (orig, frame_related); + RTX_FLAG (copy, return_val) = RTX_FLAG (orig, return_val); format_ptr = GET_RTX_FORMAT (GET_CODE (copy)); |