summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/erlang/files/erlang-12.2.0-binary-append.patch')
-rw-r--r--dev-lang/erlang/files/erlang-12.2.0-binary-append.patch16
1 files changed, 16 insertions, 0 deletions
diff --git a/dev-lang/erlang/files/erlang-12.2.0-binary-append.patch b/dev-lang/erlang/files/erlang-12.2.0-binary-append.patch
new file mode 100644
index 000000000000..c98c8eb9f04b
--- /dev/null
+++ b/dev-lang/erlang/files/erlang-12.2.0-binary-append.patch
@@ -0,0 +1,16 @@
+--- lib/compiler/src/beam_bsm.erl.orig 2007-12-10 21:37:43.000000000 +0100
++++ lib/compiler/src/beam_bsm.erl 2007-12-10 21:38:20.000000000 +0100
+@@ -269,9 +269,11 @@
+ btb_reaches_match_1(Is, btb_kill([Dst], Regs), D);
+ btb_reaches_match_2([{bs_init_bits,{f,0},_,_,_,_,Dst}|Is], Regs, D) ->
+ btb_reaches_match_1(Is, btb_kill([Dst], Regs), D);
+-btb_reaches_match_2([{bs_append,{f,0},_,_,_,_,_,_,Dst}|Is], Regs, D) ->
++btb_reaches_match_2([{bs_append,{f,0},_,_,_,_,Src,_,Dst}=I|Is], Regs, D) ->
++ btb_ensure_not_used([Src], I, Regs),
+ btb_reaches_match_1(Is, btb_kill([Dst], Regs), D);
+-btb_reaches_match_2([{bs_private_append,{f,0},_,_,_,_,Dst}|Is], Regs, D) ->
++btb_reaches_match_2([{bs_private_append,{f,0},_,_,Src,_,Dst}=I|Is], Regs, D) ->
++ btb_ensure_not_used([Src], I, Regs),
+ btb_reaches_match_1(Is, btb_kill([Dst], Regs), D);
+ btb_reaches_match_2([{bs_put_integer,{f,0},_,_,_,_}|Is], Regs, D) ->
+ btb_reaches_match_1(Is, Regs, D);