100 lines
1.9 KiB
Plaintext
100 lines
1.9 KiB
Plaintext
.assembly 'usingstmt' { }
|
|
.assembly extern 'mscorlib' {
|
|
.ver 1:0:5000:0
|
|
.publickeytoken = ( b7 7a 5c 56 19 34 e0 89 )
|
|
}
|
|
.class sealed 'P'
|
|
extends [mscorlib]System.ValueType
|
|
implements [mscorlib]System.IDisposable
|
|
{
|
|
.field public int32 'x'
|
|
.field public int32 'y'
|
|
.method hidebysig public virtual final instance void 'Dispose'() {
|
|
.override [mscorlib]System.IDisposable::'Dispose'
|
|
ret
|
|
.maxstack 0
|
|
} // end of method P.Dispose
|
|
.method hidebysig specialname rtspecialname public void .ctor(int32 'x') {
|
|
ldarg.0
|
|
ldarg 1 // x
|
|
stfld int32 'P'::'x'
|
|
ldarg.0
|
|
ldc.i4 1
|
|
stfld int32 'P'::'y'
|
|
ret
|
|
.maxstack 2
|
|
} // end of constructor P.P
|
|
} // end of struct P
|
|
.class 'T'
|
|
extends [mscorlib]System.Object
|
|
{
|
|
.method hidebysig static public void 'Main'() {
|
|
.entrypoint
|
|
.locals init ([0]value class 'P' 't0')
|
|
ldloca 0 // a
|
|
ldc.i4 0
|
|
stfld int32 'P'::'x'
|
|
ldloca 0 // a
|
|
ldc.i4 1
|
|
stfld int32 'P'::'y'
|
|
br $2
|
|
$1:
|
|
.locals init ([1]value class 'P' 'x')
|
|
.locals init ([2]value class 'P' 't2')
|
|
ldloca 2 // t2
|
|
initobj value class 'P'
|
|
ldloc 2 // t2
|
|
stloc 1 // x
|
|
.locals init ([3]value class 'P' 'y')
|
|
ldloc 1 // x
|
|
stloc 3 // y
|
|
.try {
|
|
ldloca 1 // x
|
|
ldfld int32 'P'::'x'
|
|
ldloca 3 // y
|
|
ldfld int32 'P'::'x'
|
|
bne.un $6
|
|
leave $3
|
|
$6:
|
|
$7:
|
|
leave $8
|
|
leave $5
|
|
}
|
|
finally {
|
|
ldloca 3 // y
|
|
callvirt instance void 'P'::'Dispose'()
|
|
ldloca 1 // x
|
|
callvirt instance void 'P'::'Dispose'()
|
|
endfinally
|
|
} // end .try
|
|
$5:
|
|
$4:
|
|
$2:
|
|
ldc.i4 1
|
|
brtrue $1
|
|
$3:
|
|
$8:
|
|
.locals init ([4]value class 'P' 't4')
|
|
ldloc 0 // a
|
|
stloc 4 // t4
|
|
.try {
|
|
leave $10
|
|
}
|
|
finally {
|
|
ldloca 4 // t4
|
|
callvirt instance void 'P'::'Dispose'()
|
|
endfinally
|
|
} // end .try
|
|
$10:
|
|
$9:
|
|
ret
|
|
.maxstack 2
|
|
} // end of method T.Main
|
|
.method hidebysig specialname rtspecialname public void .ctor() {
|
|
ldarg.0
|
|
call instance void [mscorlib]System.Object::.ctor()
|
|
ret
|
|
.maxstack 1
|
|
} // end of constructor T.T
|
|
} // end of class T
|