diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/20090331-1.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20090331-1.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/20090331-1.c b/gcc/testsuite/gcc.c-torture/compile/20090331-1.c new file mode 100644 index 000000000..2db2ee72e --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20090331-1.c @@ -0,0 +1,26 @@ +struct re_pattern_buffer { + unsigned char *buffer; + unsigned long int allocated; +}; +void byte_regex_compile (struct re_pattern_buffer *bufp, + unsigned char *begalt, unsigned char *b) +{ + unsigned char *pfrom; + unsigned char *pto; + + while ((unsigned long) (b - bufp->buffer + 3) > bufp->allocated) + { + unsigned char *old_buffer = bufp->buffer; + bufp->allocated <<= 1; + if (old_buffer != bufp->buffer) + { + int incr = bufp->buffer - old_buffer; + b += incr; + } + } + pfrom = b; + pto = b + 3; + while (pfrom != begalt) + *--pto = *--pfrom; +} + |