static int TestS4_Corrupted4() { S4 s1 = new S4(); s1.i = 0x1010101; S4Corrupted3 s2 = new S4Corrupted3(); s2 = Unsafe.As <S4, S4Corrupted3>(ref s1); S4Corrupted3 s3 = s2; s2.b0 = 0; s3.b1 = 1; s1 = Unsafe.As <S4Corrupted3, S4>(ref s3); if (s1.i != 0x01010101) { return(101); } if (s2.b0 != 0) { return(101); } return(100); }
static int TestS4_Corrupted3() { S4 s1 = new S4(); S4Corrupted3 s2 = new S4Corrupted3(); s2.b0 = 1; if (s1.i != 0) { return(101); } s1 = Unsafe.As <S4Corrupted3, S4>(ref s2); s2.b0 = 2; if (s1.i != 1) { return(101); } if (s2.b0 != 2) { return(101); } s2.b1 = 1; s1 = Unsafe.As <S4Corrupted3, S4>(ref s2); if (s1.i != 16777218) { return(101); } if (s2.b0 != 2) { return(101); } return(100); }