mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
29 lines
1.1 KiB
Bash
Executable File
29 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eo pipefail
|
|
|
|
# This is a regression test against https://github.com/ethereum/solidity/issues/14494
|
|
# Due to the bug, a decision about which variable to use to replace a subexpression in CSE would
|
|
# depend on sorting order of variable names. A variable not being used as a replacement could lead
|
|
# to it being unused in general and removed by Unused Pruner. This would show up as a difference
|
|
# in the bytecode.
|
|
|
|
# shellcheck source=scripts/common.sh
|
|
source "${REPO_ROOT}/scripts/common.sh"
|
|
# shellcheck source=scripts/common_cmdline.sh
|
|
source "${REPO_ROOT}/scripts/common_cmdline.sh"
|
|
|
|
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
|
|
|
|
function assemble_with_variable_name {
|
|
local input_file="$1"
|
|
local variable_name="$2"
|
|
|
|
sed -e "s|__placeholder__|${variable_name}|g" "$input_file" | msg_on_error --no-stderr \
|
|
"$SOLC" --strict-assembly - --optimize --debug-info none |
|
|
stripCLIDecorations
|
|
}
|
|
|
|
diff_values \
|
|
"$(assemble_with_variable_name "${SCRIPT_DIR}/cse_bug.yul" _1)" \
|
|
"$(assemble_with_variable_name "${SCRIPT_DIR}/cse_bug.yul" _2)"
|