diff options
author | Björn Gustavsson <[email protected]> | 2012-01-25 15:13:13 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2012-01-25 15:13:13 +0100 |
commit | cbd04034742fbd5f330eb51944d19b99c14ec3f4 (patch) | |
tree | 54a154baa14b6ab3aeac72f3890e6cabbaec6ad6 /lib/compiler/src/beam_utils.erl | |
parent | 92b5a1ad679dec79ae40cee4a144f6da614433e1 (diff) | |
parent | d58a69fcf3af87043d6d807f3101bf0b4d9f6a41 (diff) | |
download | otp-cbd04034742fbd5f330eb51944d19b99c14ec3f4.tar.gz otp-cbd04034742fbd5f330eb51944d19b99c14ec3f4.tar.bz2 otp-cbd04034742fbd5f330eb51944d19b99c14ec3f4.zip |
Merge branch 'maint'
* maint:
Update primary bootstrap
compiler: Correct live calculation when get/1 is used in try...catch
Diffstat (limited to 'lib/compiler/src/beam_utils.erl')
-rw-r--r-- | lib/compiler/src/beam_utils.erl | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/compiler/src/beam_utils.erl b/lib/compiler/src/beam_utils.erl index a631b8cd69..116ede0bc9 100644 --- a/lib/compiler/src/beam_utils.erl +++ b/lib/compiler/src/beam_utils.erl @@ -474,8 +474,15 @@ check_liveness(R, [{make_fun2,_,_,_,NumFree}|Is], St) -> end; check_liveness(R, [{try_end,Y}|Is], St) -> case R of - Y -> {killed,St}; - _ -> check_liveness(R, Is, St) + Y -> + {killed,St}; + {y,_} -> + %% y registers will be used if an exception occurs and + %% control transfers to the label given in the previous + %% try/2 instruction. + {used,St}; + _ -> + check_liveness(R, Is, St) end; check_liveness(R, [{catch_end,Y}|Is], St) -> case R of |