summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/passes/InstrumentLocals.cpp11
-rw-r--r--test/passes/instrument-locals_all-features.txt4
2 files changed, 9 insertions, 6 deletions
diff --git a/src/passes/InstrumentLocals.cpp b/src/passes/InstrumentLocals.cpp
index 8fc689222..27c3acde5 100644
--- a/src/passes/InstrumentLocals.cpp
+++ b/src/passes/InstrumentLocals.cpp
@@ -145,14 +145,17 @@ struct InstrumentLocals : public WalkerPass<PostWalker<InstrumentLocals>> {
addImport(curr, get_i64, "jiij");
addImport(curr, get_f32, "fiif");
addImport(curr, get_f64, "diid");
- addImport(curr, get_anyref, "aiia");
- addImport(curr, get_exnref, "eiie");
addImport(curr, set_i32, "iiii");
addImport(curr, set_i64, "jiij");
addImport(curr, set_f32, "fiif");
addImport(curr, set_f64, "diid");
- addImport(curr, set_anyref, "aiia");
- addImport(curr, set_exnref, "eiie");
+
+ if (curr->features.hasReferenceTypes()) {
+ addImport(curr, get_anyref, "aiia");
+ addImport(curr, get_exnref, "eiie");
+ addImport(curr, set_anyref, "aiia");
+ addImport(curr, set_exnref, "eiie");
+ }
}
private:
diff --git a/test/passes/instrument-locals_all-features.txt b/test/passes/instrument-locals_all-features.txt
index 1faef3f14..b4525c52b 100644
--- a/test/passes/instrument-locals_all-features.txt
+++ b/test/passes/instrument-locals_all-features.txt
@@ -10,12 +10,12 @@
(import "env" "get_i64" (func $get_i64 (param i32 i32 i64) (result i64)))
(import "env" "get_f32" (func $get_f32 (param i32 i32 f32) (result f32)))
(import "env" "get_f64" (func $get_f64 (param i32 i32 f64) (result f64)))
- (import "env" "get_anyref" (func $get_anyref (param i32 i32 anyref) (result anyref)))
- (import "env" "get_exnref" (func $get_exnref (param i32 i32 exnref) (result exnref)))
(import "env" "set_i32" (func $set_i32 (param i32 i32 i32) (result i32)))
(import "env" "set_i64" (func $set_i64 (param i32 i32 i64) (result i64)))
(import "env" "set_f32" (func $set_f32 (param i32 i32 f32) (result f32)))
(import "env" "set_f64" (func $set_f64 (param i32 i32 f64) (result f64)))
+ (import "env" "get_anyref" (func $get_anyref (param i32 i32 anyref) (result anyref)))
+ (import "env" "get_exnref" (func $get_exnref (param i32 i32 exnref) (result exnref)))
(import "env" "set_anyref" (func $set_anyref (param i32 i32 anyref) (result anyref)))
(import "env" "set_exnref" (func $set_exnref (param i32 i32 exnref) (result exnref)))
(func $A (; 12 ;) (type $FUNCSIG$v)