diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/powerpc/const-compare.c')
-rw-r--r-- | gcc/testsuite/gcc.target/powerpc/const-compare.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/powerpc/const-compare.c b/gcc/testsuite/gcc.target/powerpc/const-compare.c new file mode 100644 index 000000000..a09957d34 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/const-compare.c @@ -0,0 +1,29 @@ +/* { dg-do compile { target { powerpc*-*-darwin* && lp64 } } } */ +/* { dg-options "-O1 -static" } */ +typedef unsigned long long uint64_t; + +static int +match(name, pat) + uint64_t *name, *pat; +{ + int ok=0, negate_range; + uint64_t c, k; + + c = *pat++; + switch (c & 0xffffffffffULL) { + case ((uint64_t)(('[')|0x8000000000ULL)): + if ((negate_range = ((*pat & 0xffffffffffULL) == ((uint64_t)(('!')|0x8000000000ULL)) )) != '\0') + ++pat; + while (((c = *pat++) & 0xffffffffffULL) ) + if ((*pat & 0xffffffffffULL) == ((uint64_t)(('-')|0x8000000000ULL))) + { + pat += 2; + } + + if (ok == negate_range) + return(0); + break; + } + return(*name == '\0'); +} + |