Я работаю над исправлением некоторых ошибок в компиляторе TinyGo.На данный момент у меня странные проблемы с bitcasting.Код IR будет выглядеть следующим образом:
%structcast.go.A = type { i32, i32, i32, i32 }
%structcast.go.B = type { i32, i32, i32, i32 }
...
%0 = load %structcast.go.B, %structcast.go.B* %b, !dbg !1851
%changetype = bitcast %structcast.go.B %0 to %structcast.go.A, !dbg !1852
call void @structcast.go.foo(%structcast.go.A %changetype, i8* undef, i8* undef), !dbg !1853
Но во время проверки ИК я получаю:
Invalid bitcast
%changetype = bitcast %structcast.go.B %0 to %structcast.go.A, !dbg !1852
Мне интересно, что именно является незаконным в этом биткасте?