diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/cp.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/cp.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/cp.c b/gcc/testsuite/gcc.c-torture/compile/cp.c new file mode 100644 index 0000000..04b1420 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/cp.c @@ -0,0 +1,42 @@ +struct _obstack_chunk +{ + char *limit; + struct _obstack_chunk *prev; + char contents[4]; +}; + +struct obstack +{ + long chunk_size; + struct _obstack_chunk* chunk; + char *object_base; + char *next_free; + char *chunk_limit; + int temp; + int alignment_mask; + struct _obstack_chunk *(*chunkfun) (); + void (*freefun) (); +}; + +struct fooalign {char x; double d;}; +union fooround {long x; double d;}; + +void +_obstack_begin (h, size, alignment, chunkfun, freefun) + struct obstack *h; + int size; + int alignment; + void * (*chunkfun) (); + void (*freefun) (); +{ + register struct _obstack_chunk* chunk; + + if (alignment == 0) + alignment = ((char *)&((struct fooalign *) 0)->d - (char *)0); + if (size == 0) + { + int extra = 4; + if (extra < (sizeof (union fooround))) + extra = (sizeof (union fooround)); + } +} |