This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
For the curious as to what this thing does, basically, given 7 a_2 = V_MAY_DEF (a_1) a.f = 5
a_3 = V_MAY_DEF (a_2) a.g = 6
VUSE (a_3) b = a.f
a_2 = V_MAY_DEF (a_1) a.f = 5
a_3 = V_MAY_DEF (a_2) a.g = 6
VUSE (a_2) b = a.f
An example: struct a { int a; int b; };
int main(int argc, char **argv) { struct a *foo; struct a a, b; foo = &a; foo->a = 5; printf ("%d\n", foo->a); foo->b = 6; printf ("%d\n", foo->b); printf ("%d\n", foo->a); if (argc) { foo = &b; foo->a = 6; printf ("%d\n", foo->b); foo->b = 7; printf ("%d\n", foo->b); printf ("%d\n", foo->a); } printf ("%d\n", foo->a); printf ("%d\n", foo->b); foo->a = 8; printf ("%d\n", foo->b); printf ("%d\n", foo->a); foo->b = 9; printf ("%d\n", foo->b); printf ("%d\n", foo->a); }
main (argc, argv) { int temp.8; int temp.7; int temp.6; int temp.5; int temp.4; struct a b; struct a a; struct a * foo; int D.1127; int D.1126;
<bb 0>: a.a = 5; printf (&"%d\n"[0], 5); a.b = 6; printf (&"%d\n"[0], 6); printf (&"%d\n"[0], a.a); if (argc != 0) goto <L0>; else goto <L3>;
<L3>:; foo = &a; goto <bb 2> (<L1>);
<L0>:; b.a = 6; printf (&"%d\n"[0], b.b); b.b = 7; printf (&"%d\n"[0], 7); printf (&"%d\n"[0], b.a); foo = &b;
<L1>:; printf (&"%d\n"[0], foo->a); printf (&"%d\n"[0], foo->b); foo->a = 8; printf (&"%d\n"[0], foo->b); printf (&"%d\n"[0], 8); foo->b = 9; printf (&"%d\n"[0], 9); printf (&"%d\n"[0], foo->a); return;
main (argc, argv) { int temp.4; struct a b; struct a a; struct a * foo; int D.1127; int D.1126;
<bb 0>: a.a = 5; printf (&"%d\n"[0], 5); a.b = 6; printf (&"%d\n"[0], 6); printf (&"%d\n"[0], 5); if (argc != 0) goto <L0>; else goto <L3>;
<L3>:; foo = &a; goto <bb 2> (<L1>);
<L0>:; b.a = 6; printf (&"%d\n"[0], b.b); b.b = 7; printf (&"%d\n"[0], 7); printf (&"%d\n"[0], 6); foo = &b;
<L1>:; printf (&"%d\n"[0], foo->a); D.1127 = foo->b; printf (&"%d\n"[0], D.1127); printf (&"%d\n"[0], D.1127); printf (&"%d\n"[0], 8); printf (&"%d\n"[0], 9); printf (&"%d\n"[0], 8); return;
Attachment:
vusebypass.diff
Description: Binary data
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |