diff options
-rw-r--r-- | src/passes/InstrumentLocals.cpp | 11 | ||||
-rw-r--r-- | test/passes/instrument-locals_all-features.txt | 4 |
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) |