File tree Expand file tree Collapse file tree 10 files changed +27
-31
lines changed
Expand file tree Collapse file tree 10 files changed +27
-31
lines changed Original file line number Diff line number Diff line change @@ -2023,11 +2023,8 @@ struct PrintExpressionContents
20232023 void visitNop (Nop* curr) { printMinor (o, " nop" ); }
20242024 void visitUnreachable (Unreachable* curr) { printMinor (o, " unreachable" ); }
20252025 void visitPop (Pop* curr) {
2026- prepareColor (o) << " pop" ;
2027- for (auto type : curr->type ) {
2028- o << ' ' ;
2029- printType (type);
2030- }
2026+ prepareColor (o) << " pop " ;
2027+ printType (curr->type );
20312028 restoreNormalColor (o);
20322029 }
20332030 void visitTupleMake (TupleMake* curr) {
Original file line number Diff line number Diff line change @@ -2394,11 +2394,10 @@ Expression* SExpressionWasmBuilder::makeMemoryFill(Element& s) {
23942394
23952395Expression* SExpressionWasmBuilder::makePop (Element& s) {
23962396 auto ret = allocator.alloc <Pop>();
2397- std::vector<Type> types;
2398- for (size_t i = 1 ; i < s.size (); ++i) {
2399- types.push_back (elementToType (*s[i]));
2397+ if (s.size () != 2 ) {
2398+ throw SParseException (" expected 'pop <valtype>'" , s);
24002399 }
2401- ret->type = Type (types );
2400+ ret->type = elementToType (*s[ 1 ] );
24022401 ret->finalize ();
24032402 return ret;
24042403}
Original file line number Diff line number Diff line change @@ -2237,7 +2237,7 @@ BinaryenFeatureAll: 131071
22372237 (pop externref)
22382238 )
22392239 (tuple.drop 4
2240- (pop i32 i64 f32 f64)
2240+ (pop (tuple i32 i64 f32 f64) )
22412241 )
22422242 (drop
22432243 (memory.size)
Original file line number Diff line number Diff line change 115115 ;; CHECK-TEXT-NEXT: )
116116 ;; CHECK-TEXT-NEXT: (catch $e-i32-i64
117117 ;; CHECK-TEXT-NEXT: (local.set $x
118- ;; CHECK-TEXT-NEXT: (pop i32 i64)
118+ ;; CHECK-TEXT-NEXT: (pop (tuple i32 i64) )
119119 ;; CHECK-TEXT-NEXT: )
120120 ;; CHECK-TEXT-NEXT: (drop
121121 ;; CHECK-TEXT-NEXT: (tuple.extract 2 0
139139 ;; CHECK-BIN-NEXT: )
140140 ;; CHECK-BIN-NEXT: (catch $e-i32-i64
141141 ;; CHECK-BIN-NEXT: (local.set $2
142- ;; CHECK-BIN-NEXT: (pop i32 i64)
142+ ;; CHECK-BIN-NEXT: (pop (tuple i32 i64) )
143143 ;; CHECK-BIN-NEXT: )
144144 ;; CHECK-BIN-NEXT: (local.set $x
145145 ;; CHECK-BIN-NEXT: (block (result i32)
168168 (throw $e-i32-i64 (i32.const 0 ) (i64.const 0 ))
169169 )
170170 (catch $e-i32-i64
171- (local.set $x (pop i32 i64 ))
171+ (local.set $x (pop (tuple i32 i64 ) ))
172172 (drop
173173 (tuple.extract 2 0
174174 (local.get $x )
13871387;; CHECK-BIN-NODEBUG-NEXT: )
13881388;; CHECK-BIN-NODEBUG-NEXT: (catch $tag$2
13891389;; CHECK-BIN-NODEBUG-NEXT: (local.set $2
1390- ;; CHECK-BIN-NODEBUG-NEXT: (pop i32 i64)
1390+ ;; CHECK-BIN-NODEBUG-NEXT: (pop (tuple i32 i64) )
13911391;; CHECK-BIN-NODEBUG-NEXT: )
13921392;; CHECK-BIN-NODEBUG-NEXT: (local.set $0
13931393;; CHECK-BIN-NODEBUG-NEXT: (block (result i32)
Original file line number Diff line number Diff line change 334334 ;; CHECK-NEXT: )
335335 ;; CHECK-NEXT: (catch $e-i32-f32
336336 ;; CHECK-NEXT: (local.set $1
337- ;; CHECK-NEXT: (pop i32 f32)
337+ ;; CHECK-NEXT: (pop (tuple i32 f32) )
338338 ;; CHECK-NEXT: )
339339 ;; CHECK-NEXT: (throw $e-i32
340340 ;; CHECK-NEXT: (block (result i32)
354354 (throw $e-i32
355355 ;; This tests a pop taking a tuple type.
356356 (block (result i32 )
357- (local.set $x (pop i32 f32 ))
357+ (local.set $x (pop (tuple i32 f32 ) ))
358358 (i32.const 0 )
359359 )
360360 )
Original file line number Diff line number Diff line change 21502150 ;; CHECK-NEXT: )
21512151 ;; CHECK-NEXT: (catch $tag
21522152 ;; CHECK-NEXT: (local.set $0
2153- ;; CHECK-NEXT: (pop anyref anyref)
2153+ ;; CHECK-NEXT: (pop (tuple anyref anyref) )
21542154 ;; CHECK-NEXT: )
21552155 ;; CHECK-NEXT: (drop
21562156 ;; CHECK-NEXT: (block (result nullref)
21692169 ;; CHECK-NEXT: (catch $tag
21702170 ;; CHECK-NEXT: (drop
21712171 ;; CHECK-NEXT: (tuple.extract 2 1
2172- ;; CHECK-NEXT: (pop anyref anyref)
2172+ ;; CHECK-NEXT: (pop (tuple anyref anyref) )
21732173 ;; CHECK-NEXT: )
21742174 ;; CHECK-NEXT: )
21752175 ;; CHECK-NEXT: )
21872187 (catch $tag
21882188 (drop
21892189 (tuple.extract 2 0
2190- (pop (ref null any) (ref null any))
2190+ (pop (tuple ( ref null any) (ref null any) ))
21912191 )
21922192 )
21932193 )
21982198 (catch $tag
21992199 (drop
22002200 (tuple.extract 2 1
2201- (pop (ref null any) (ref null any))
2201+ (pop (tuple ( ref null any) (ref null any) ))
22022202 )
22032203 )
22042204 )
Original file line number Diff line number Diff line change 482482 ;; CHECK-NEXT: (i32.const 0)
483483 ;; CHECK-NEXT: (i64.const 1)
484484 ;; CHECK-NEXT: (br $l
485- ;; CHECK-NEXT: (pop i32 i64)
485+ ;; CHECK-NEXT: (pop (tuple i32 i64) )
486486 ;; CHECK-NEXT: )
487487 ;; CHECK-NEXT: )
488488 ;; CHECK-NEXT: )
501501 ;; CHECK-NEXT: (i32.const 0)
502502 ;; CHECK-NEXT: (i64.const 1)
503503 ;; CHECK-NEXT: (return
504- ;; CHECK-NEXT: (pop i32 i64)
504+ ;; CHECK-NEXT: (pop (tuple i32 i64) )
505505 ;; CHECK-NEXT: )
506506 ;; CHECK-NEXT: )
507507 (func $return-tuple (result i32 i64 )
Original file line number Diff line number Diff line change 232232 )
233233 (catch $e-i32-i64
234234 (tuple.drop 2
235- (pop i32 i64 )
235+ (pop (tuple i32 i64 ) )
236236 )
237237 )
238238 (catch_all
294294 )
295295 (catch $e-i32-i64
296296 (tuple.drop 2
297- (pop i32 i64 )
297+ (pop (tuple i32 i64 ) )
298298 )
299299 (rethrow $l0 )
300300 )
515515 )
516516 (catch $e-i32-i64
517517 (tuple.drop 2
518- (pop i32 i64 )
518+ (pop (tuple i32 i64 ) )
519519 )
520520 (i32.const 1 )
521521 )
584584 )
585585 (catch $e-i32-i64
586586 (tuple.drop 2
587- (pop i32 i64 )
587+ (pop (tuple i32 i64 ) )
588588 )
589589 (rethrow $l0 )
590590 )
856856 )
857857 )
858858 (catch $e-i32-i64
859- (pop i32 i64 )
859+ (pop (tuple i32 i64 ) )
860860 )
861861 (catch_all
862862 (tuple.make 2
932932 )
933933 (catch $e-i32-i64
934934 (tuple.drop 2
935- (pop i32 i64 )
935+ (pop (tuple i32 i64 ) )
936936 )
937937 (rethrow $l0 )
938938 )
10501050 )
10511051 (catch $e-i32-i64
10521052 (tuple.drop 2
1053- (pop i32 i64 )
1053+ (pop (tuple i32 i64 ) )
10541054 )
10551055 (rethrow $l0 )
10561056 )
Original file line number Diff line number Diff line change 18241824 ;; CHECK-NEXT: )
18251825 ;; CHECK-NEXT: )
18261826 ;; CHECK-NEXT: (catch $tag-pair
1827- ;; CHECK-NEXT: (pop i32 i64)
1827+ ;; CHECK-NEXT: (pop (tuple i32 i64) )
18281828 ;; CHECK-NEXT: )
18291829 ;; CHECK-NEXT: )
18301830 ;; CHECK-NEXT: )
Original file line number Diff line number Diff line change 8282 )
8383 (catch $e-i32-f32
8484 (local.set $x
85- (pop i32 f32 )
85+ (pop (tuple i32 f32 ) )
8686 )
8787 (tuple.extract 2 0
8888 (local.get $x )
You can’t perform that action at this time.
0 commit comments