Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type b1 {
- type() {}
- dynamic f() { return false; }
- }
- type b2 {
- type() {}
- dynamic g() { return false; }
- }
- type der : b1 : b2 {
- type() {}
- f() { return true; }
- g() { return true; }
- }
- f(arg1 := b1.lvalue, arg2 := b2.lvalue) {
- return arg1.f() & arg2.g();
- }
- Main() {
- var := der();
- return f(var, var);
- }
- ; ModuleID = 'Wide'
- target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
- target triple = "x86_64-unknown-linux-gnu"
- %struct.__0x2f2d310 = type { %struct.__0x2f331a0, %struct.__0x2f35a70, i32 ()** }
- %struct.__0x2f331a0 = type { i32 ()** }
- %struct.__0x2f35a70 = type { i32 ()** }
- %"0x2f39a80" = type { i8 }
- %struct.__0x2f62fb0 = type { %struct.__0x2f331a0* }
- %"0x2f385e0" = type { i8 }
- %struct.__0x2f68b20 = type { %struct.__0x2f35a70* }
- %"0x2f3f4c0" = type { i8 }
- %"0x2f425a0" = type { i8 }
- %"0x2f31de0" = type { i8 }
- %"0x2f5e8f0" = type { i8 }
- @"0x2f4eec0" = internal constant [1 x i32 ()*] [i32 ()* bitcast (i8 (%struct.__0x2f35a70*)* @__0x2f385e0 to i32 ()*)]
- @"0x2f4ba50" = internal constant [1 x i32 ()*] [i32 ()* bitcast (i8 (%struct.__0x2f331a0*)* @__0x2f39a80 to i32 ()*)]
- @"0x2f50490" = internal constant [1 x i32 ()*] [i32 ()* bitcast (i8 (%struct.__0x2f2d310*)* @__0x2f46b00 to i32 ()*)]
- @"0x2f51220" = internal constant [1 x i32 ()*] [i32 ()* bitcast (i8 (%struct.__0x2f2d310*)* @__0x2f510d08 to i32 ()*)]
- @"0x2f51ec0" = internal constant [2 x i32 ()*] [i32 ()* bitcast (i8 (%struct.__0x2f2d310*)* @__0x2f47ea0 to i32 ()*), i32 ()* bitcast (i8 (%struct.__0x2f2d310*)* @__0x2f46b00 to i32 ()*)]
- define internal i8 @__0x2f47ea0(%struct.__0x2f2d310*) {
- entry:
- ret i8 1
- }
- define internal i8 @__0x2f46b00(%struct.__0x2f2d310*) {
- entry:
- ret i8 1
- }
- define internal void @__0x2f425a0(%struct.__0x2f35a70*) {
- entry:
- %1 = bitcast %struct.__0x2f35a70* %0 to i32 ()***
- store i32 ()** getelementptr inbounds ([1 x i32 ()*]* @"0x2f4eec0", i32 0, i32 0), i32 ()*** %1
- ret void
- }
- define internal i8 @__0x2f385e0(%struct.__0x2f35a70*) {
- entry:
- ret i8 0
- }
- define internal i8 @__0x2f5e8f0(%struct.__0x2f331a0*, %struct.__0x2f35a70*) {
- entry:
- %2 = alloca i8, align 1
- %3 = alloca i8*, align 8
- %4 = alloca i8, align 1
- %5 = alloca %"0x2f39a80", align 1
- %6 = load %"0x2f39a80"* %5
- %7 = alloca %struct.__0x2f62fb0, align 8
- %8 = load %struct.__0x2f62fb0* %7
- %9 = insertvalue %struct.__0x2f62fb0 zeroinitializer, %struct.__0x2f331a0* %0, 0
- store %struct.__0x2f62fb0 %9, %struct.__0x2f62fb0* %7
- %10 = load %struct.__0x2f62fb0* %7
- %11 = extractvalue %struct.__0x2f62fb0 %10, 0
- %12 = call i8 @__0x2f39a80(%struct.__0x2f331a0* %11)
- store i8 %12, i8* %4
- store i8* %4, i8** %3
- %13 = load i8** %3
- %14 = load i8* %13
- store i8 %14, i8* %2
- %15 = load i8* %2
- %16 = alloca %"0x2f385e0", align 1
- %17 = load %"0x2f385e0"* %16
- %18 = alloca %struct.__0x2f68b20, align 8
- %19 = load %struct.__0x2f68b20* %18
- %20 = insertvalue %struct.__0x2f68b20 zeroinitializer, %struct.__0x2f35a70* %1, 0
- store %struct.__0x2f68b20 %20, %struct.__0x2f68b20* %18
- %21 = load %struct.__0x2f68b20* %18
- %22 = extractvalue %struct.__0x2f68b20 %21, 0
- %23 = call i8 @__0x2f385e0(%struct.__0x2f35a70* %22)
- %24 = and i8 %15, %23
- store i8 %24, i8* %2
- %25 = load i8* %2
- ret i8 %25
- }
- define internal i8 @__0x2f39a80(%struct.__0x2f331a0*) {
- entry:
- ret i8 0
- }
- define internal void @__0x2f3f4c0(%struct.__0x2f331a0*) {
- entry:
- %1 = bitcast %struct.__0x2f331a0* %0 to i32 ()***
- store i32 ()** getelementptr inbounds ([1 x i32 ()*]* @"0x2f4ba50", i32 0, i32 0), i32 ()*** %1
- ret void
- }
- define internal void @__0x2f31de0(%struct.__0x2f2d310*) {
- entry:
- %1 = alloca %"0x2f3f4c0", align 1
- %2 = load %"0x2f3f4c0"* %1
- %3 = bitcast %struct.__0x2f2d310* %0 to %struct.__0x2f331a0*
- call void @__0x2f3f4c0(%struct.__0x2f331a0* %3)
- %4 = alloca %"0x2f425a0", align 1
- %5 = load %"0x2f425a0"* %4
- %6 = getelementptr inbounds %struct.__0x2f2d310* %0, i32 0, i32 1
- call void @__0x2f425a0(%struct.__0x2f35a70* %6)
- %7 = bitcast %struct.__0x2f2d310* %0 to %struct.__0x2f331a0*
- %8 = bitcast %struct.__0x2f331a0* %7 to i32 ()***
- store i32 ()** getelementptr inbounds ([1 x i32 ()*]* @"0x2f50490", i32 0, i32 0), i32 ()*** %8
- %9 = getelementptr inbounds %struct.__0x2f2d310* %0, i32 0, i32 1
- %10 = bitcast %struct.__0x2f35a70* %9 to i32 ()***
- store i32 ()** getelementptr inbounds ([1 x i32 ()*]* @"0x2f51220", i32 0, i32 0), i32 ()*** %10
- %11 = getelementptr inbounds %struct.__0x2f2d310* %0, i32 0, i32 2
- store i32 ()** getelementptr inbounds ([2 x i32 ()*]* @"0x2f51ec0", i32 0, i32 0), i32 ()*** %11
- ret void
- }
- define internal i8 @__0x2f510d08(%struct.__0x2f2d310*) {
- entry:
- %1 = bitcast %struct.__0x2f2d310* %0 to i8*
- %2 = getelementptr i8* %1, i32 -8
- %3 = bitcast i8* %2 to %struct.__0x2f2d310*
- %4 = call i8 @__0x2f47ea0(%struct.__0x2f2d310* %3)
- ret i8 %4
- }
- define internal i8 @__0x2f2c740() {
- entry:
- %0 = alloca %"0x2f31de0", align 1
- %1 = load %"0x2f31de0"* %0
- %2 = alloca %struct.__0x2f2d310, align 8
- call void @__0x2f31de0(%struct.__0x2f2d310* %2)
- %3 = load %struct.__0x2f2d310* %2
- %4 = alloca %struct.__0x2f2d310, align 8
- store %struct.__0x2f2d310 %3, %struct.__0x2f2d310* %4
- %5 = alloca %"0x2f5e8f0", align 1
- %6 = load %"0x2f5e8f0"* %5
- %7 = alloca %struct.__0x2f331a0*, align 8
- %8 = bitcast %struct.__0x2f2d310* %4 to %struct.__0x2f331a0*
- store %struct.__0x2f331a0* %8, %struct.__0x2f331a0** %7
- %9 = load %struct.__0x2f331a0** %7
- %10 = alloca %struct.__0x2f35a70*, align 8
- %11 = getelementptr inbounds %struct.__0x2f2d310* %4, i32 0, i32 1
- store %struct.__0x2f35a70* %11, %struct.__0x2f35a70** %10
- %12 = load %struct.__0x2f35a70** %10
- %13 = call i8 @__0x2f5e8f0(%struct.__0x2f331a0* %9, %struct.__0x2f35a70* %12)
- ret i8 %13
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement