From c8661e115309626a87708cb25067b6a3210367fe Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Thu, 8 Oct 2020 16:00:20 -0700 Subject: Fuzz fix for DuplicateFunctionElimination (#3204) The replaceFunctions utility replaced exports by name, but did not check the kind, so it could get confused when names happen to overlap. --- .../passes/duplicate-function-elimination_all-features.wast | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'test/passes/duplicate-function-elimination_all-features.wast') diff --git a/test/passes/duplicate-function-elimination_all-features.wast b/test/passes/duplicate-function-elimination_all-features.wast index 587271728..116542c96 100644 --- a/test/passes/duplicate-function-elimination_all-features.wast +++ b/test/passes/duplicate-function-elimination_all-features.wast @@ -1,4 +1,4 @@ -;; --dupliate-function-elimination should not remove functions used in ref.func. +;; --duplicate-function-elimination should not remove functions used in ref.func. (module (func $0 (result i32) (i32.const 0) @@ -10,3 +10,14 @@ (ref.func $1) ) ) +;; renaming after deduplication must only affect functions +(module + (memory $foo 16 16) + (global $bar i32 (i32.const 0)) + (export "memory" (memory $foo)) + (export "global" (global $bar)) + (func $bar ;; happens to share a name with the global + ) + (func $foo ;; happens to share a name with the memory + ) +) -- cgit v1.2.3