diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/20090209-1.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20090209-1.c | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/20090209-1.c b/gcc/testsuite/gcc.c-torture/compile/20090209-1.c new file mode 100644 index 000000000..781a5e8fd --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20090209-1.c @@ -0,0 +1,61 @@ +/* PR middle-end/38981 */ +/* Reporter: Kamaraju Kusumanchi <kamaraju@gmail.com> */ + +struct d_info +{ + int **subs; +}; + +static int * +d_substitution (struct d_info *di, int prefix) +{ + char c; + + c='_'; + + if (c == '_') + { + unsigned int id; + + if (c != '_') + { + do + { + unsigned int new_id; + + if (new_id < id) + return 0; + id = new_id; + } + while (c != '_'); + } + + + + return di->subs[id]; + } + else + { + int verbose; + int code; + int simple_len; + + code=0; + simple_len=0; + verbose=0; + if (! code && prefix) + { + char peek; + peek='A'; + + if (peek == 'C' || peek == 'D') + verbose = 1; + } + + if (verbose) + { + code = simple_len; + } + + } +} |