aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2014-03-05 12:53:39 +0100
committerBjörn Gustavsson <[email protected]>2014-03-05 12:53:39 +0100
commitf4346705566f668b5cf88b91c5c79cec215a6ad6 (patch)
tree23bdce04d6ddaf5d1c4b7b6d7ed253c44b152239 /lib/compiler
parenta15b25bbd09b91040ba92c65c287ad04b1bc2a30 (diff)
parentadade27df2a89887ff44ef54e59996effafb6419 (diff)
downloadotp-f4346705566f668b5cf88b91c5c79cec215a6ad6.tar.gz
otp-f4346705566f668b5cf88b91c5c79cec215a6ad6.tar.bz2
otp-f4346705566f668b5cf88b91c5c79cec215a6ad6.zip
Merge branch 'nox/compiler/live_opt-wait_timeout-nil'
* nox/compiler/live_opt-wait_timeout-nil: Handle nil as a wait_timeout argument in beam_utils:live_opt/4
Diffstat (limited to 'lib/compiler')
-rw-r--r--lib/compiler/src/beam_utils.erl2
-rw-r--r--lib/compiler/test/receive_SUITE.erl1
2 files changed, 3 insertions, 0 deletions
diff --git a/lib/compiler/src/beam_utils.erl b/lib/compiler/src/beam_utils.erl
index 27034aecce..8ca368c167 100644
--- a/lib/compiler/src/beam_utils.erl
+++ b/lib/compiler/src/beam_utils.erl
@@ -748,6 +748,8 @@ live_opt([{try_end,_}=I|Is], Regs, D, Acc) ->
live_opt(Is, Regs, D, [I|Acc]);
live_opt([{loop_rec_end,_}=I|Is], Regs, D, Acc) ->
live_opt(Is, Regs, D, [I|Acc]);
+live_opt([{wait_timeout,_,nil}=I|Is], Regs, D, Acc) ->
+ live_opt(Is, Regs, D, [I|Acc]);
live_opt([{wait_timeout,_,{Tag,_}}=I|Is], Regs, D, Acc) when Tag =/= x ->
live_opt(Is, Regs, D, [I|Acc]);
live_opt([{line,_}=I|Is], Regs, D, Acc) ->
diff --git a/lib/compiler/test/receive_SUITE.erl b/lib/compiler/test/receive_SUITE.erl
index ec49267ded..00a6e900d4 100644
--- a/lib/compiler/test/receive_SUITE.erl
+++ b/lib/compiler/test/receive_SUITE.erl
@@ -257,6 +257,7 @@ wait(Config) when is_list(Config) ->
self() ! <<42>>,
<<42>> = wait_1(r, 1, 2),
{1,2,3} = wait_1(1, 2, 3),
+ {'EXIT',{timeout_value,_}} = (catch receive after [] -> timeout end),
ok.
wait_1(r, _, _) ->