Skip to content

Commit dea234b

Browse files
authored
Fix type printing in the type fuzzer (#5543)
In #5437 we updated type printing so that printing a heap type would print its name in addition to its contents. We had already been separately printing type names in the type fuzzer, so after that change we were printing each type name twice. Remove the redundant printing in the fuzzer to fix the error.
1 parent e13ad34 commit dea234b

File tree

3 files changed

+40
-41
lines changed

3 files changed

+40
-41
lines changed

src/tools/wasm-fuzz-types.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,18 +116,17 @@ void Fuzzer::printTypes(const std::vector<HeapType>& types) {
116116
if (inRecGroup()) {
117117
std::cout << ' ';
118118
}
119-
std::cout << "(type $" << i << ' ';
120119
if (type.isBasic()) {
121-
std::cout << print(type) << ")\n";
120+
std::cout << "(type $" << i << ' ' << print(type) << ")\n";
122121
continue;
123122
}
124123
auto [it, inserted] = seen.insert({type, i});
125124
if (inserted) {
126125
std::cout << print(type);
127126
} else {
128-
std::cout << "identical to $" << it->second;
127+
std::cout << "(type $" << i << " identical to $" << it->second << ")";
129128
}
130-
std::cout << ")\n";
129+
std::cout << "\n";
131130
}
132131
if (inRecGroup()) {
133132
std::cout << ")\n";

test/lit/fuzz-types/isorecursive.test

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,33 +34,33 @@
3434
;; CHECK-NEXT: Inhabitable types:
3535
;; CHECK-NEXT:
3636
;; CHECK-NEXT: Built 20 types:
37-
;; CHECK-NEXT: (type $0 (type $0 (struct)))
37+
;; CHECK-NEXT: (type $0 (struct))
3838
;; CHECK-NEXT: (rec
39-
;; CHECK-NEXT: (type $1 (type $1 (struct)))
40-
;; CHECK-NEXT: (type $2 (type $2 (array i16)))
41-
;; CHECK-NEXT: (type $3 (type $3 (func)))
42-
;; CHECK-NEXT: (type $4 (type $4 (func (param (ref $5) i32 i64 f64 f64 (ref eq) v128) (result i64))))
43-
;; CHECK-NEXT: (type $5 (type $5 (array (mut i32))))
39+
;; CHECK-NEXT: (type $1 (struct))
40+
;; CHECK-NEXT: (type $2 (array i16))
41+
;; CHECK-NEXT: (type $3 (func))
42+
;; CHECK-NEXT: (type $4 (func (param (ref $5) i32 i64 f64 f64 (ref eq) v128) (result i64)))
43+
;; CHECK-NEXT: (type $5 (array (mut i32)))
4444
;; CHECK-NEXT: )
4545
;; CHECK-NEXT: (rec
46-
;; CHECK-NEXT: (type $6 (type $6 (array (mut funcref))))
47-
;; CHECK-NEXT: (type $7 (type $7 (func (param f64) (result i64))))
46+
;; CHECK-NEXT: (type $6 (array (mut funcref)))
47+
;; CHECK-NEXT: (type $7 (func (param f64) (result i64)))
4848
;; CHECK-NEXT: )
4949
;; CHECK-NEXT: (rec
50-
;; CHECK-NEXT: (type $8 (type $8 (struct_subtype (field f64 (ref $2) f64 (mut (ref null $9))) $1)))
51-
;; CHECK-NEXT: (type $9 (type $9 (func_subtype (param (ref array) i32 i64 f64 f64 anyref v128) (result i64) $4)))
50+
;; CHECK-NEXT: (type $8 (struct_subtype (field f64 (ref $2) f64 (mut (ref null $9))) $1))
51+
;; CHECK-NEXT: (type $9 (func_subtype (param (ref array) i32 i64 f64 f64 anyref v128) (result i64) $4))
5252
;; CHECK-NEXT: )
5353
;; CHECK-NEXT: (rec
54-
;; CHECK-NEXT: (type $10 (type $10 (func_subtype (param (ref eq) i32 i64 f64 f64 anyref v128) (result i64) $9)))
55-
;; CHECK-NEXT: (type $11 (type $11 (array_subtype (mut funcref) $6)))
56-
;; CHECK-NEXT: (type $12 (type $12 (array nullref)))
54+
;; CHECK-NEXT: (type $10 (func_subtype (param (ref eq) i32 i64 f64 f64 anyref v128) (result i64) $9))
55+
;; CHECK-NEXT: (type $11 (array_subtype (mut funcref) $6))
56+
;; CHECK-NEXT: (type $12 (array nullref))
5757
;; CHECK-NEXT: (type $13 none)
58-
;; CHECK-NEXT: (type $14 (type $14 (array (ref $6))))
59-
;; CHECK-NEXT: (type $15 (type $15 (array i32)))
58+
;; CHECK-NEXT: (type $14 (array (ref $6)))
59+
;; CHECK-NEXT: (type $15 (array i32))
6060
;; CHECK-NEXT: )
6161
;; CHECK-NEXT: (rec
62-
;; CHECK-NEXT: (type $16 (type $16 (array_subtype nullref $12)))
63-
;; CHECK-NEXT: (type $17 (type $17 (func (param (ref null $9)) (result f32 structref))))
62+
;; CHECK-NEXT: (type $16 (array_subtype nullref $12))
63+
;; CHECK-NEXT: (type $17 (func (param (ref null $9)) (result f32 structref)))
6464
;; CHECK-NEXT: (type $18 none)
6565
;; CHECK-NEXT: )
66-
;; CHECK-NEXT: (type $19 (type $19 (func_subtype (param (ref any) i32 i64 f64 f64 anyref v128) (result i64) $9)))
66+
;; CHECK-NEXT: (type $19 (func_subtype (param (ref any) i32 i64 f64 f64 anyref v128) (result i64) $9))

test/lit/fuzz-types/nominal.test

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,23 @@
2424
;; CHECK-NEXT: Inhabitable types:
2525
;; CHECK-NEXT:
2626
;; CHECK-NEXT: Built 20 types:
27-
;; CHECK-NEXT: (type $0 (type $0 (struct (field (mut i16) i31ref f32 f32 f64))))
28-
;; CHECK-NEXT: (type $1 (type $1 (func (param f64 v128))))
29-
;; CHECK-NEXT: (type $2 (type $2 (struct (field (mut (ref null $19)) f64 arrayref))))
30-
;; CHECK-NEXT: (type $3 (type $3 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64) $0)))
31-
;; CHECK-NEXT: (type $4 (type $4 (struct)))
27+
;; CHECK-NEXT: (type $0 (struct (field (mut i16) i31ref f32 f32 f64)))
28+
;; CHECK-NEXT: (type $1 (func (param f64 v128)))
29+
;; CHECK-NEXT: (type $2 (struct (field (mut (ref null $19)) f64 arrayref)))
30+
;; CHECK-NEXT: (type $3 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64) $0))
31+
;; CHECK-NEXT: (type $4 (struct))
3232
;; CHECK-NEXT: (type $5 none)
33-
;; CHECK-NEXT: (type $6 (type $6 (array (mut eqref))))
34-
;; CHECK-NEXT: (type $7 (type $7 (func_subtype (param f64 v128) $1)))
35-
;; CHECK-NEXT: (type $8 (type $8 (array anyref)))
36-
;; CHECK-NEXT: (type $9 (type $9 (array f32)))
37-
;; CHECK-NEXT: (type $10 (type $10 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64) $0)))
38-
;; CHECK-NEXT: (type $11 (type $11 (func (result f64))))
39-
;; CHECK-NEXT: (type $12 (type $12 (func_subtype (param f64 v128) $1)))
40-
;; CHECK-NEXT: (type $13 (type $13 (func_subtype (param f64 v128) $12)))
41-
;; CHECK-NEXT: (type $14 (type $14 (func_subtype (result f64) $11)))
42-
;; CHECK-NEXT: (type $15 (type $15 (func_subtype (result f64) $14)))
43-
;; CHECK-NEXT: (type $16 (type $16 (func (param (ref struct)) (result structref))))
44-
;; CHECK-NEXT: (type $17 (type $17 (array (mut (ref $2)))))
45-
;; CHECK-NEXT: (type $18 (type $18 (array (ref $10))))
46-
;; CHECK-NEXT: (type $19 (type $19 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64 (mut f32)) $0)))
33+
;; CHECK-NEXT: (type $6 (array (mut eqref)))
34+
;; CHECK-NEXT: (type $7 (func_subtype (param f64 v128) $1))
35+
;; CHECK-NEXT: (type $8 (array anyref))
36+
;; CHECK-NEXT: (type $9 (array f32))
37+
;; CHECK-NEXT: (type $10 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64) $0))
38+
;; CHECK-NEXT: (type $11 (func (result f64)))
39+
;; CHECK-NEXT: (type $12 (func_subtype (param f64 v128) $1))
40+
;; CHECK-NEXT: (type $13 (func_subtype (param f64 v128) $12))
41+
;; CHECK-NEXT: (type $14 (func_subtype (result f64) $11))
42+
;; CHECK-NEXT: (type $15 (func_subtype (result f64) $14))
43+
;; CHECK-NEXT: (type $16 (func (param (ref struct)) (result structref)))
44+
;; CHECK-NEXT: (type $17 (array (mut (ref $2))))
45+
;; CHECK-NEXT: (type $18 (array (ref $10)))
46+
;; CHECK-NEXT: (type $19 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64 (mut f32)) $0))

0 commit comments

Comments
 (0)