mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-10-31 07:59:52 +00:00
Provide unique name from closures with same name (#488)
In YUL it's possible to declare closure with a same name, but in different scope, which previously resulted to func name conflict during LLVM IR construction. To solve this, track YUL scope when building LLVM IR and a special counter that increments every time function with the same name exists in LLVM module. There's still assert if somehow within the same scope there 2 functions with the same name, which should be forbidden by Yul Fixes: #474 --------- Co-authored-by: LJ <81748770+elle-j@users.noreply.github.com>
This commit is contained in:
1 parent
dc155efc73
commit
61ac247135
8 files changed
+218
-19
No files matched your search
@@ -24,6 +24,12 @@ pub const YUL_MEMSET_CONTRACT_PATH: &str = "src/tests/data/yul/memset.yul";
|
||||
pub const YUL_RETURN_CONTRACT_PATH: &str = "src/tests/data/yul/return.yul";
|
||||
/// The invalid YUL contract test fixture path (hex literal with odd number of nibbles).
|
||||
pub const YUL_INVALID_HEX_NIBBLES_PATH: &str = "src/tests/data/yul/invalid_hex_nibbles.yul";
|
||||
/// Yul contract with duplicate function names in switch cases.
|
||||
pub const YUL_DUPLICATE_FUNCTIONS_SWITCH_PATH: &str =
|
||||
"src/tests/data/yul/duplicate_functions_switch.yul";
|
||||
/// Yul contract with duplicate function names in deeply nested switch cases.
|
||||
pub const YUL_DUPLICATE_FUNCTIONS_DEEP_NESTING_PATH: &str =
|
||||
"src/tests/data/yul/duplicate_functions_deep_nesting.yul";
|
||||
|
||||
/// The standard JSON contracts test fixture path.
|
||||
pub const STANDARD_JSON_CONTRACTS_PATH: &str =
|
||||
|
||||
Reference in new issue
Block a user