File tree 2 files changed +42
-5
lines changed
test/libyul/yulSSAControlFlowGraph
2 files changed +42
-5
lines changed Original file line number Diff line number Diff line change @@ -273,11 +273,6 @@ void SSAControlFlowGraphBuilder::operator()(Assignment const& _assignment)
273
273
274
274
void SSAControlFlowGraphBuilder::operator ()(VariableDeclaration const & _variableDeclaration)
275
275
{
276
- // if we have no value (like in `let a` without right-hand side), we can just skip this. the variable(s) will be
277
- // added when first needed
278
- if (!_variableDeclaration.value )
279
- return ;
280
-
281
276
assign (
282
277
_variableDeclaration.variables | ranges::views::transform ([&](auto & _var) { return std::ref (lookupVariable (_var.name )); }) | ranges::to<std::vector>,
283
278
_variableDeclaration.value .get ()
Original file line number Diff line number Diff line change
1
+ {
2
+ let x
3
+ if mload (42 ) {
4
+ x := 5
5
+ }
6
+ sstore (x, x)
7
+ }
8
+ // ----
9
+ // digraph SSACFG {
10
+ // nodesep=0.7;
11
+ // graph[fontname="DejaVu Sans"]
12
+ // node[shape=box,fontname="DejaVu Sans"];
13
+ //
14
+ // Entry0 [label="Entry"];
15
+ // Entry0 -> Block0_0;
16
+ // Block0_0 [label="\
17
+ // Block 0; (0, max 2)\nLiveIn: \l\
18
+ // LiveOut: v1\l\nv1 := 0\l\
19
+ // v3 := mload(42)\l\
20
+ // "];
21
+ // Block0_0 -> Block0_0Exit;
22
+ // Block0_0Exit [label="{ If v3 | { <0> Zero | <1> NonZero }}" shape=Mrecord];
23
+ // Block0_0Exit:0 -> Block0_2 [style="solid"];
24
+ // Block0_0Exit:1 -> Block0_1 [style="solid"];
25
+ // Block0_1 [label="\
26
+ // Block 1; (1, max 2)\nLiveIn: \l\
27
+ // LiveOut: v5\l\nv5 := 5\l\
28
+ // "];
29
+ // Block0_1 -> Block0_1Exit [arrowhead=none];
30
+ // Block0_1Exit [label="Jump" shape=oval];
31
+ // Block0_1Exit -> Block0_2 [style="solid"];
32
+ // Block0_2 [label="\
33
+ // Block 2; (2, max 2)\nLiveIn: v6\l\
34
+ // LiveOut: \l\nv6 := φ(\l\
35
+ // Block 0 => v1,\l\
36
+ // Block 1 => v5\l\
37
+ // )\l\
38
+ // sstore(v6, v6)\l\
39
+ // "];
40
+ // Block0_2Exit [label="MainExit"];
41
+ // Block0_2 -> Block0_2Exit;
42
+ // }
You can’t perform that action at this time.
0 commit comments