blob: ff8dc33a1a43c65aecefebe254c7e2cc36b1878f [file] [log] [blame]
// PR ipa/65765
// { dg-do run }
// { dg-options "-O2" }
int a, b, c, d, e;
unsigned char h[] = { 1, 1 };
__attribute__ ((cold)) int ModRM_Mode () { return a; }
int
ModRM_RM (int p1)
{
return p1;
}
__attribute__ ((cold)) static bool ModRM_hasSIB (unsigned char p1)
{
return ModRM_Mode () != 1 && ModRM_RM (p1);
}
__attribute__ ((cold)) static bool ModRM_hasRIP (unsigned char p1)
{
return ModRM_Mode () && ModRM_RM (p1);
}
unsigned char *
DisassembleHeapAccess (unsigned char *p1)
{
b = *p1++;
if (ModRM_hasSIB (b))
c = *p1++;
int f = c, g = 0;
d = ModRM_hasRIP (g);
e = f == 0;
if (e)
p1 += sizeof 0;
return p1;
}
int
main ()
{
if (DisassembleHeapAccess (h) != h + 2)
__builtin_abort ();
}