Index: lib/Transforms/IPO/LowerTypeTests.cpp =================================================================== --- lib/Transforms/IPO/LowerTypeTests.cpp +++ lib/Transforms/IPO/LowerTypeTests.cpp @@ -1042,7 +1042,7 @@ LTT->Int64Ty = Type::getInt64Ty(M.getContext()); LTT->IntPtrTy = DL.getIntPtrType(M.getContext(), 0); LTT->TypeTestCallSites.clear(); - LTT->IndirectIndex = 0; + LTT->IndirectIndex = 1; } bool LowerTypeTests::runOnModule(Module &M) { Index: test/CodeGen/WebAssembly/cfi.ll =================================================================== --- test/CodeGen/WebAssembly/cfi.ll +++ test/CodeGen/WebAssembly/cfi.ll @@ -14,13 +14,13 @@ } ; CHECK-LABEL: f: -; CHECK: .indidx 0 +; CHECK: .indidx 1 define void @f() !type !0 { ret void } ; CHECK-LABEL: g: -; CHECK: .indidx 1 +; CHECK: .indidx 2 define void @g() !type !1 { ret void } Index: test/Transforms/LowerTypeTests/function-disjoint.ll =================================================================== --- test/Transforms/LowerTypeTests/function-disjoint.ll +++ test/Transforms/LowerTypeTests/function-disjoint.ll @@ -32,14 +32,14 @@ define i1 @foo(i8* %p) { ; X64: icmp eq i64 {{.*}}, ptrtoint ([1 x <{ i8, i32, i8, i8, i8 }>]* @[[JT0]] to i64) - ; WASM32: icmp eq i64 {{.*}}, 0 + ; WASM32: icmp eq i64 {{.*}}, 1 %x = call i1 @llvm.type.test(i8* %p, metadata !"typeid1") ; X64: icmp eq i64 {{.*}}, ptrtoint ([1 x <{ i8, i32, i8, i8, i8 }>]* @[[JT1]] to i64) - ; WASM32: icmp eq i64 {{.*}}, 1 + ; WASM32: icmp eq i64 {{.*}}, 2 %y = call i1 @llvm.type.test(i8* %p, metadata !"typeid2") %z = add i1 %x, %y ret i1 %z } -; WASM32: ![[I0]] = !{i64 0} -; WASM32: ![[I1]] = !{i64 1} +; WASM32: ![[I0]] = !{i64 1} +; WASM32: ![[I1]] = !{i64 2} Index: test/Transforms/LowerTypeTests/function-ext.ll =================================================================== --- test/Transforms/LowerTypeTests/function-ext.ll +++ test/Transforms/LowerTypeTests/function-ext.ll @@ -12,8 +12,8 @@ define i1 @bar(i8* %ptr) { ; X64: icmp eq i64 {{.*}}, ptrtoint ([1 x <{ i8, i32, i8, i8, i8 }>]* @[[JT]] to i64) - ; WASM32: sub i64 {{.*}}, 0 - ; WASM32: icmp ult i64 {{.*}}, 1 + ; WASM32: sub i64 {{.*}}, 1 + ; WASM32: icmp ult i64 {{.*}}, 2 %p = call i1 @llvm.type.test(i8* %ptr, metadata !"void") ret i1 %p } @@ -22,3 +22,4 @@ !0 = !{i64 0, !"void"} ; WASM-NOT: !{i64 0} +; WASM-NOT: !{i64 1} Index: test/Transforms/LowerTypeTests/function.ll =================================================================== --- test/Transforms/LowerTypeTests/function.ll +++ test/Transforms/LowerTypeTests/function.ll @@ -30,11 +30,11 @@ define i1 @foo(i8* %p) { ; X64: sub i64 {{.*}}, ptrtoint ([2 x <{ i8, i32, i8, i8, i8 }>]* @[[JT]] to i64) - ; WASM32: sub i64 {{.*}}, 0 - ; WASM32: icmp ult i64 {{.*}}, 2 + ; WASM32: sub i64 {{.*}}, 1 + ; WASM32: icmp ult i64 {{.*}}, 3 %x = call i1 @llvm.type.test(i8* %p, metadata !"typeid1") ret i1 %x } -; WASM32: ![[I0]] = !{i64 0} -; WASM32: ![[I1]] = !{i64 1} +; WASM32: ![[I0]] = !{i64 1} +; WASM32: ![[I1]] = !{i64 2}