Skip to content

Commit 589eff8

Browse files
authored
Source maps: Fix missing debug info in nested blocks (#6525)
The special block nesting logic also needs to handle emitting debug info.
1 parent 1bf7d08 commit 589eff8

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

src/wasm-stack.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,7 @@ void BinaryenIRWriter<SubType>::visitBlock(Block* curr) {
328328
parents.push_back(curr);
329329
emit(curr);
330330
curr = child;
331+
emitDebugLocation(curr);
331332
}
332333
// Emit the current block, which does not have a block as a child in the
333334
// first position.

test/lit/source-map.wast

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,18 @@
3232
)
3333
;;@ src.cpp:90:1
3434
)
35+
36+
(func $nested-blocks
37+
;;@ src.cpp:2:1
38+
(block $label$1
39+
;;@ src.cpp:2:2
40+
(block $label$2
41+
(br $label$2)
42+
)
43+
)
44+
;;@ src.cpp:3:1
45+
(return)
46+
)
3547
)
3648

3749
;; CHECK: ;;@ src.cpp:0:1
@@ -59,3 +71,15 @@
5971
;; CHECK-NEXT: )
6072
;; CHECK-NEXT: ;;@ src.cpp:90:1
6173
;; CHECK-NEXT: )
74+
75+
;; CHECK: (func $nested-blocks
76+
;; CHECK-NEXT: ;;@ src.cpp:2:1
77+
;; CHECK-NEXT: (block $label$1
78+
;; CHECK-NEXT: ;;@ src.cpp:2:2
79+
;; CHECK-NEXT: (block $label$2
80+
;; CHECK-NEXT: (br $label$2)
81+
;; CHECK-NEXT: )
82+
;; CHECK-NEXT: )
83+
;; CHECK-NEXT: ;;@ src.cpp:3:1
84+
;; CHECK-NEXT: (return)
85+
;; CHECK-NEXT: )

0 commit comments

Comments
 (0)