48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package generator
|
|
|
|
import "testing"
|
|
|
|
func TestAssignmentUnion (test *testing.T) {
|
|
testString (test,
|
|
`%"0zNZN147MN2wzMAQ6NS2dQ==::U" = type { i64, i64 }
|
|
define void @"0zNZN147MN2wzMAQ6NS2dQ==::main"() {
|
|
0:
|
|
%1 = alloca double
|
|
store double 0x401ECCCCCCCCCCCD, ptr %1
|
|
%2 = alloca %"0zNZN147MN2wzMAQ6NS2dQ==::U"
|
|
%3 = getelementptr %"0zNZN147MN2wzMAQ6NS2dQ==::U", ptr %2, i32 0, i32 0
|
|
%4 = getelementptr %"0zNZN147MN2wzMAQ6NS2dQ==::U", ptr %2, i32 0, i32 1
|
|
store i64 9186060094042213285, ptr %3
|
|
%5 = load double, ptr %1
|
|
store double %5, ptr %4
|
|
ret void
|
|
}
|
|
`,
|
|
`
|
|
U: (| Int F64)
|
|
[main] = {
|
|
x:F64 = 7.7
|
|
y:U = x
|
|
}
|
|
`)}
|
|
|
|
func TestAssignmentUnionToUnion (test *testing.T) {
|
|
testString (test,
|
|
`%"0zNZN147MN2wzMAQ6NS2dQ==::U" = type { i64, i64 }
|
|
define void @"0zNZN147MN2wzMAQ6NS2dQ==::main"() {
|
|
0:
|
|
%1 = alloca %"0zNZN147MN2wzMAQ6NS2dQ==::U"
|
|
%2 = alloca %"0zNZN147MN2wzMAQ6NS2dQ==::U"
|
|
%3 = load %"0zNZN147MN2wzMAQ6NS2dQ==::U", ptr %2
|
|
store %"0zNZN147MN2wzMAQ6NS2dQ==::U" %3, ptr %1
|
|
ret void
|
|
}
|
|
`,
|
|
`
|
|
U: (| Int F64)
|
|
[main] = {
|
|
x:U y:U
|
|
x = y
|
|
}
|
|
`)}
|