aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
authorJohn Högberg <[email protected]>2019-02-26 14:52:38 +0100
committerJohn Högberg <[email protected]>2019-02-27 14:59:40 +0100
commitc68eda34ef8b0d2df9cd1d133b99b64d32e8c622 (patch)
treeb9736780ea3190d42398af93da3be003c759c156 /erts
parent1dd050c9064534f4b4aeb13b7af1fd3b988c5e8f (diff)
downloadotp-c68eda34ef8b0d2df9cd1d133b99b64d32e8c622.tar.gz
otp-c68eda34ef8b0d2df9cd1d133b99b64d32e8c622.tar.bz2
otp-c68eda34ef8b0d2df9cd1d133b99b64d32e8c622.zip
beam_validator: Tolerate the 'receive' hack in prim_eval
Diffstat (limited to 'erts')
-rw-r--r--erts/preloaded/src/prim_eval.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/erts/preloaded/src/prim_eval.S b/erts/preloaded/src/prim_eval.S
index e4b1560517..900fda5d89 100644
--- a/erts/preloaded/src/prim_eval.S
+++ b/erts/preloaded/src/prim_eval.S
@@ -42,6 +42,10 @@
{label,3}.
{loop_rec,{f,5},{x,0}}.
{move,{y,1},{x,1}}.
+ %% Tell the validator that it's safe to pass the message as an argument,
+ %% as the match fun is "known" not to build a term with it, and the
+ %% loop_rec instruction has disabled the GC.
+ {'%', {remove_fragility, {x,0}}}.
{call_fun,1}.
{test,is_ne_exact,{f,4},[{x,0},{atom,nomatch}]}.
remove_message.