summaryrefslogtreecommitdiff
path: root/test/passes/duplicate-function-elimination_all-features.wast
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes/duplicate-function-elimination_all-features.wast')
-rw-r--r--test/passes/duplicate-function-elimination_all-features.wast18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/passes/duplicate-function-elimination_all-features.wast b/test/passes/duplicate-function-elimination_all-features.wast
index 116542c96..1d04e878c 100644
--- a/test/passes/duplicate-function-elimination_all-features.wast
+++ b/test/passes/duplicate-function-elimination_all-features.wast
@@ -21,3 +21,21 @@
(func $foo ;; happens to share a name with the memory
)
)
+;; renaming after deduplication must update ref.funcs in globals
+(module
+ (type $func (func (result i32)))
+ (global $global$0 (ref $func) (ref.func $bar))
+ ;; These two identical functions can be merged. The ref.func in the global must
+ ;; be updated accordingly.
+ (func $foo (result i32)
+ (unreachable)
+ )
+ (func $bar (result i32)
+ (unreachable)
+ )
+ (func "export" (result i32)
+ (call_ref
+ (global.get $global$0)
+ )
+ )
+)