summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wasm-stack.h1
-rw-r--r--test/lit/source-map.wast24
2 files changed, 25 insertions, 0 deletions
diff --git a/src/wasm-stack.h b/src/wasm-stack.h
index de8fd8b03..d6c0e46ec 100644
--- a/src/wasm-stack.h
+++ b/src/wasm-stack.h
@@ -328,6 +328,7 @@ void BinaryenIRWriter<SubType>::visitBlock(Block* curr) {
parents.push_back(curr);
emit(curr);
curr = child;
+ emitDebugLocation(curr);
}
// Emit the current block, which does not have a block as a child in the
// first position.
diff --git a/test/lit/source-map.wast b/test/lit/source-map.wast
index 2b4d3f5c7..43a87f291 100644
--- a/test/lit/source-map.wast
+++ b/test/lit/source-map.wast
@@ -32,6 +32,18 @@
)
;;@ src.cpp:90:1
)
+
+ (func $nested-blocks
+ ;;@ src.cpp:2:1
+ (block $label$1
+ ;;@ src.cpp:2:2
+ (block $label$2
+ (br $label$2)
+ )
+ )
+ ;;@ src.cpp:3:1
+ (return)
+ )
)
;; CHECK: ;;@ src.cpp:0:1
@@ -59,3 +71,15 @@
;; CHECK-NEXT: )
;; CHECK-NEXT: ;;@ src.cpp:90:1
;; CHECK-NEXT: )
+
+;; CHECK: (func $nested-blocks
+;; CHECK-NEXT: ;;@ src.cpp:2:1
+;; CHECK-NEXT: (block $label$1
+;; CHECK-NEXT: ;;@ src.cpp:2:2
+;; CHECK-NEXT: (block $label$2
+;; CHECK-NEXT: (br $label$2)
+;; CHECK-NEXT: )
+;; CHECK-NEXT: )
+;; CHECK-NEXT: ;;@ src.cpp:3:1
+;; CHECK-NEXT: (return)
+;; CHECK-NEXT: )