|
|
@ -835,7 +835,7 @@ class FunctionSolc: |
|
|
|
node = self._parse_block(statement, node) |
|
|
|
node = self._parse_block(statement, node) |
|
|
|
elif name == "InlineAssembly": |
|
|
|
elif name == "InlineAssembly": |
|
|
|
# Added with solc 0.6 - the yul code is an AST |
|
|
|
# Added with solc 0.6 - the yul code is an AST |
|
|
|
if "AST" in statement: |
|
|
|
if "AST" in statement and not self.slither.skip_assembly: |
|
|
|
self._function.contains_assembly = True |
|
|
|
self._function.contains_assembly = True |
|
|
|
yul_object = self._new_yul_block(statement["src"]) |
|
|
|
yul_object = self._new_yul_block(statement["src"]) |
|
|
|
entrypoint = yul_object.entrypoint |
|
|
|
entrypoint = yul_object.entrypoint |
|
|
@ -849,6 +849,8 @@ class FunctionSolc: |
|
|
|
asm_node = self._new_node(NodeType.ASSEMBLY, statement["src"]) |
|
|
|
asm_node = self._new_node(NodeType.ASSEMBLY, statement["src"]) |
|
|
|
self._function.contains_assembly = True |
|
|
|
self._function.contains_assembly = True |
|
|
|
# Added with solc 0.4.12 |
|
|
|
# Added with solc 0.4.12 |
|
|
|
|
|
|
|
if "AST" in statement: |
|
|
|
|
|
|
|
asm_node.underlying_node.add_inline_asm(statement["AST"]) |
|
|
|
if "operations" in statement: |
|
|
|
if "operations" in statement: |
|
|
|
asm_node.underlying_node.add_inline_asm(statement["operations"]) |
|
|
|
asm_node.underlying_node.add_inline_asm(statement["operations"]) |
|
|
|
link_underlying_nodes(node, asm_node) |
|
|
|
link_underlying_nodes(node, asm_node) |
|
|
|