File 3221-beam_ssa_pp-Reserve-branch-shorthand-for-normalized-.patch of Package erlang
From 1a4d1f8e4249fd80ce8eb460b383a695342f75dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?John=20H=C3=B6gberg?= <john@erlang.org>
Date: Fri, 6 Mar 2020 10:04:27 +0100
Subject: [PATCH] beam_ssa_pp: Reserve branch shorthand for *normalized*
#b_br{}
Using the "br ^Label" shorthand for all unconditional branches
made it easy to miss un-normalized terminators.
---
lib/compiler/src/beam_ssa_pp.erl | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/lib/compiler/src/beam_ssa_pp.erl b/lib/compiler/src/beam_ssa_pp.erl
index fdfc91b425..adb8533a81 100644
--- a/lib/compiler/src/beam_ssa_pp.erl
+++ b/lib/compiler/src/beam_ssa_pp.erl
@@ -168,10 +168,9 @@ format_i_number(#{n:=N}) ->
io_lib:format("[~p] ", [N]);
format_i_number(#{}) -> [].
-format_terminator(#b_br{anno=A,bool=#b_literal{val=true},succ=Lbl}, _) ->
- io_lib:format(" ~sbr ~ts\n", [format_i_number(A),format_label(Lbl)]);
-format_terminator(#b_br{anno=A,bool=#b_literal{val=false},fail=Lbl}, _) ->
- io_lib:format(" ~sbr ~ts\n", [format_i_number(A),format_label(Lbl)]);
+format_terminator(#b_br{anno=A,bool=#b_literal{val=true},
+ succ=Same,fail=Same}, _) ->
+ io_lib:format(" ~sbr ~ts\n", [format_i_number(A),format_label(Same)]);
format_terminator(#b_br{anno=A,bool=Bool,succ=Succ,fail=Fail}, FuncAnno) ->
io_lib:format(" ~sbr ~ts, ~ts, ~ts\n",
[format_i_number(A),
--
2.16.4