blob: 176823f237e6bbed8798308ccd106dc428376923 [file] [log] [blame]
// Compiler should not generate too many lexical blocks for this function.
// { dg-do compile { target { i?86-*-* x86_64-*-* } } }
// { dg-options "-O0 -fno-exceptions -g -dA" }
union UElement {
void* pointer;
int integer;
};
struct UColToken {
unsigned source;
unsigned char **rulesToParseHdl;
};
int uhash_hashTokens(const union UElement k)
{
int hash = 0;
struct UColToken *key = (struct UColToken *)k.pointer;
if (key != 0) {
int len = (key->source & 0xFF000000)>>24;
int inc = ((len - 32) / 32) + 1;
const unsigned char *p = (key->source & 0x00FFFFFF)
+ *(key->rulesToParseHdl);
const unsigned char *limit = p + len;
hash = *p + *limit;
}
return hash;
}
// { dg-final { scan-assembler-not "LBB10" } }