Coverage Report

Created: 2022-08-24 06:38

/src/solidity/libyul/optimiser/SyntacticalEquality.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
  This file is part of solidity.
3
4
  solidity is free software: you can redistribute it and/or modify
5
  it under the terms of the GNU General Public License as published by
6
  the Free Software Foundation, either version 3 of the License, or
7
  (at your option) any later version.
8
9
  solidity is distributed in the hope that it will be useful,
10
  but WITHOUT ANY WARRANTY; without even the implied warranty of
11
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
  GNU General Public License for more details.
13
14
  You should have received a copy of the GNU General Public License
15
  along with solidity.  If not, see <http://www.gnu.org/licenses/>.
16
*/
17
// SPDX-License-Identifier: GPL-3.0
18
/**
19
 * Component that can compare ASTs for equality on a syntactic basis.
20
 */
21
22
#pragma once
23
24
#include <libyul/ASTForward.h>
25
#include <libyul/YulString.h>
26
27
#include <map>
28
#include <type_traits>
29
30
namespace solidity::yul
31
{
32
33
34
/**
35
 * Component that can compare ASTs for equality on a syntactic basis.
36
 * Ignores source locations and allows for different variable names but requires exact matches otherwise.
37
 *
38
 * Prerequisite: Disambiguator (unless only expressions are compared)
39
 */
40
class SyntacticallyEqual
41
{
42
public:
43
  bool operator()(Expression const& _lhs, Expression const& _rhs);
44
  bool operator()(Statement const& _lhs, Statement const& _rhs);
45
46
  bool expressionEqual(FunctionCall const& _lhs, FunctionCall const& _rhs);
47
  bool expressionEqual(Identifier const& _lhs, Identifier const& _rhs);
48
  bool expressionEqual(Literal const& _lhs, Literal const& _rhs);
49
50
  bool statementEqual(ExpressionStatement const& _lhs, ExpressionStatement const& _rhs);
51
  bool statementEqual(Assignment const& _lhs, Assignment const& _rhs);
52
  bool statementEqual(VariableDeclaration const& _lhs, VariableDeclaration const& _rhs);
53
  bool statementEqual(FunctionDefinition const& _lhs, FunctionDefinition const& _rhs);
54
  bool statementEqual(If const& _lhs, If const& _rhs);
55
  bool statementEqual(Switch const& _lhs, Switch const& _rhs);
56
  bool switchCaseEqual(Case const& _lhs, Case const& _rhs);
57
  bool statementEqual(ForLoop const& _lhs, ForLoop const& _rhs);
58
1.63k
  bool statementEqual(Break const&, Break const&) { return true; }
59
525
  bool statementEqual(Continue const&, Continue const&) { return true; }
60
303
  bool statementEqual(Leave const&, Leave const&) { return true; }
61
  bool statementEqual(Block const& _lhs, Block const& _rhs);
62
private:
63
  bool visitDeclaration(TypedName const& _lhs, TypedName const& _rhs);
64
65
  template<typename U, typename V>
66
  bool expressionEqual(U const&, V const&, std::enable_if_t<!std::is_same<U, V>::value>* = nullptr)
67
124M
  {
68
124M
    return false;
69
124M
  }
_ZN8solidity3yul18SyntacticallyEqual15expressionEqualINS0_12FunctionCallENS0_10IdentifierEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Line
Count
Source
67
27.5M
  {
68
27.5M
    return false;
69
27.5M
  }
_ZN8solidity3yul18SyntacticallyEqual15expressionEqualINS0_12FunctionCallENS0_7LiteralEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Line
Count
Source
67
39.0M
  {
68
39.0M
    return false;
69
39.0M
  }
_ZN8solidity3yul18SyntacticallyEqual15expressionEqualINS0_10IdentifierENS0_12FunctionCallEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Line
Count
Source
67
121k
  {
68
121k
    return false;
69
121k
  }
_ZN8solidity3yul18SyntacticallyEqual15expressionEqualINS0_10IdentifierENS0_7LiteralEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Line
Count
Source
67
39.4k
  {
68
39.4k
    return false;
69
39.4k
  }
_ZN8solidity3yul18SyntacticallyEqual15expressionEqualINS0_7LiteralENS0_12FunctionCallEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Line
Count
Source
67
14.8M
  {
68
14.8M
    return false;
69
14.8M
  }
_ZN8solidity3yul18SyntacticallyEqual15expressionEqualINS0_7LiteralENS0_10IdentifierEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Line
Count
Source
67
42.3M
  {
68
42.3M
    return false;
69
42.3M
  }
70
71
  template<typename U, typename V>
72
  bool statementEqual(U const&, V const&, std::enable_if_t<!std::is_same<U, V>::value>* = nullptr)
73
0
  {
74
0
    return false;
75
0
  }
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19ExpressionStatementENS0_10AssignmentEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19ExpressionStatementENS0_19VariableDeclarationEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19ExpressionStatementENS0_18FunctionDefinitionEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19ExpressionStatementENS0_2IfEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19ExpressionStatementENS0_6SwitchEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19ExpressionStatementENS0_7ForLoopEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19ExpressionStatementENS0_5BreakEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19ExpressionStatementENS0_8ContinueEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19ExpressionStatementENS0_5LeaveEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19ExpressionStatementENS0_5BlockEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_10AssignmentENS0_19ExpressionStatementEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_10AssignmentENS0_19VariableDeclarationEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_10AssignmentENS0_18FunctionDefinitionEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_10AssignmentENS0_2IfEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_10AssignmentENS0_6SwitchEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_10AssignmentENS0_7ForLoopEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_10AssignmentENS0_5BreakEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_10AssignmentENS0_8ContinueEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_10AssignmentENS0_5LeaveEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_10AssignmentENS0_5BlockEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19VariableDeclarationENS0_19ExpressionStatementEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19VariableDeclarationENS0_10AssignmentEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19VariableDeclarationENS0_18FunctionDefinitionEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19VariableDeclarationENS0_2IfEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19VariableDeclarationENS0_6SwitchEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19VariableDeclarationENS0_7ForLoopEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19VariableDeclarationENS0_5BreakEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19VariableDeclarationENS0_8ContinueEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19VariableDeclarationENS0_5LeaveEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_19VariableDeclarationENS0_5BlockEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_18FunctionDefinitionENS0_19ExpressionStatementEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_18FunctionDefinitionENS0_10AssignmentEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_18FunctionDefinitionENS0_19VariableDeclarationEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_18FunctionDefinitionENS0_2IfEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_18FunctionDefinitionENS0_6SwitchEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_18FunctionDefinitionENS0_7ForLoopEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_18FunctionDefinitionENS0_5BreakEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_18FunctionDefinitionENS0_8ContinueEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_18FunctionDefinitionENS0_5LeaveEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_18FunctionDefinitionENS0_5BlockEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_2IfENS0_19ExpressionStatementEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_2IfENS0_10AssignmentEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_2IfENS0_19VariableDeclarationEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_2IfENS0_18FunctionDefinitionEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_2IfENS0_6SwitchEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_2IfENS0_7ForLoopEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_2IfENS0_5BreakEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_2IfENS0_8ContinueEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_2IfENS0_5LeaveEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_2IfENS0_5BlockEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_6SwitchENS0_19ExpressionStatementEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_6SwitchENS0_10AssignmentEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_6SwitchENS0_19VariableDeclarationEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_6SwitchENS0_18FunctionDefinitionEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_6SwitchENS0_2IfEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_6SwitchENS0_7ForLoopEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_6SwitchENS0_5BreakEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_6SwitchENS0_8ContinueEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_6SwitchENS0_5LeaveEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_6SwitchENS0_5BlockEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_7ForLoopENS0_19ExpressionStatementEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_7ForLoopENS0_10AssignmentEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_7ForLoopENS0_19VariableDeclarationEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_7ForLoopENS0_18FunctionDefinitionEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_7ForLoopENS0_2IfEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_7ForLoopENS0_6SwitchEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_7ForLoopENS0_5BreakEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_7ForLoopENS0_8ContinueEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_7ForLoopENS0_5LeaveEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_7ForLoopENS0_5BlockEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BreakENS0_19ExpressionStatementEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BreakENS0_10AssignmentEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BreakENS0_19VariableDeclarationEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BreakENS0_18FunctionDefinitionEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BreakENS0_2IfEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BreakENS0_6SwitchEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BreakENS0_7ForLoopEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BreakENS0_8ContinueEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BreakENS0_5LeaveEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BreakENS0_5BlockEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_8ContinueENS0_19ExpressionStatementEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_8ContinueENS0_10AssignmentEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_8ContinueENS0_19VariableDeclarationEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_8ContinueENS0_18FunctionDefinitionEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_8ContinueENS0_2IfEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_8ContinueENS0_6SwitchEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_8ContinueENS0_7ForLoopEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_8ContinueENS0_5BreakEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_8ContinueENS0_5LeaveEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_8ContinueENS0_5BlockEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5LeaveENS0_19ExpressionStatementEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5LeaveENS0_10AssignmentEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5LeaveENS0_19VariableDeclarationEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5LeaveENS0_18FunctionDefinitionEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5LeaveENS0_2IfEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5LeaveENS0_6SwitchEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5LeaveENS0_7ForLoopEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5LeaveENS0_5BreakEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5LeaveENS0_8ContinueEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5LeaveENS0_5BlockEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BlockENS0_19ExpressionStatementEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BlockENS0_10AssignmentEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BlockENS0_19VariableDeclarationEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BlockENS0_18FunctionDefinitionEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BlockENS0_2IfEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BlockENS0_6SwitchEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BlockENS0_7ForLoopEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BlockENS0_5BreakEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BlockENS0_8ContinueEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
Unexecuted instantiation: _ZN8solidity3yul18SyntacticallyEqual14statementEqualINS0_5BlockENS0_5LeaveEEEbRKT_RKT0_PNSt3__19enable_ifIXntsr3std7is_sameIS5_S8_EE5valueEvE4typeE
76
77
  template<typename T, bool (SyntacticallyEqual::*CompareMember)(T const&, T const&)>
78
  bool compareUniquePtr(std::unique_ptr<T> const& _lhs, std::unique_ptr<T> const& _rhs)
79
95.1k
  {
80
95.1k
    return (_lhs == _rhs) || (_lhs && _rhs && (this->*CompareMember)(*_lhs, *_rhs));
81
95.1k
  }
bool solidity::yul::SyntacticallyEqual::compareUniquePtr<std::__1::variant<solidity::yul::FunctionCall, solidity::yul::Identifier, solidity::yul::Literal>, &solidity::yul::SyntacticallyEqual::operator()>(std::__1::unique_ptr<std::__1::variant<solidity::yul::FunctionCall, solidity::yul::Identifier, solidity::yul::Literal>, std::__1::default_delete<std::__1::variant<solidity::yul::FunctionCall, solidity::yul::Identifier, solidity::yul::Literal> > > const&, std::__1::unique_ptr<std::__1::variant<solidity::yul::FunctionCall, solidity::yul::Identifier, solidity::yul::Literal>, std::__1::default_delete<std::__1::variant<solidity::yul::FunctionCall, solidity::yul::Identifier, solidity::yul::Literal> > > const&)
Line
Count
Source
79
94.1k
  {
80
94.1k
    return (_lhs == _rhs) || (_lhs && _rhs && (this->*CompareMember)(*_lhs, *_rhs));
81
94.1k
  }
bool solidity::yul::SyntacticallyEqual::compareUniquePtr<solidity::yul::Literal, &solidity::yul::SyntacticallyEqual::expressionEqual>(std::__1::unique_ptr<solidity::yul::Literal, std::__1::default_delete<solidity::yul::Literal> > const&, std::__1::unique_ptr<solidity::yul::Literal, std::__1::default_delete<solidity::yul::Literal> > const&)
Line
Count
Source
79
1.02k
  {
80
1.02k
    return (_lhs == _rhs) || (_lhs && _rhs && (this->*CompareMember)(*_lhs, *_rhs));
81
1.02k
  }
82
83
  std::size_t m_idsUsed = 0;
84
  std::map<YulString, std::size_t> m_identifiersLHS;
85
  std::map<YulString, std::size_t> m_identifiersRHS;
86
};
87
88
}