diff options
author | Diego Novillo <dnovillo@gcc.gnu.org> | 2004-05-13 02:41:07 -0400 |
---|---|---|
committer | Diego Novillo <dnovillo@gcc.gnu.org> | 2004-05-13 02:41:07 -0400 |
commit | 6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f (patch) | |
tree | a2568888a519c077427b133de9ece5879a8484a5 /gcc/emit-rtl.c | |
parent | ac1a20aec53364d77f3bdff94a2a0a06840e0fe9 (diff) | |
download | gcc-6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f.zip gcc-6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f.tar.gz gcc-6de9cd9a886ea695aa892c3c7c07818a7b7e9e6f.tar.bz2 |
Merge tree-ssa-20020619-branch into mainline.
From-SVN: r81764
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 d7633e5..ba8a3d6 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)); |