diff options
Diffstat (limited to 'gcc-4.8/gcc/testsuite/gcc.dg/pr47446-1.c')
-rw-r--r-- | gcc-4.8/gcc/testsuite/gcc.dg/pr47446-1.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gcc-4.8/gcc/testsuite/gcc.dg/pr47446-1.c b/gcc-4.8/gcc/testsuite/gcc.dg/pr47446-1.c new file mode 100644 index 000000000..38c9594a6 --- /dev/null +++ b/gcc-4.8/gcc/testsuite/gcc.dg/pr47446-1.c @@ -0,0 +1,40 @@ +/* { dg-do assemble } */ +/* { dg-options "-O2" } */ + +extern void abort (void); +enum +{ + __GCONV_OK = 0, + __GCONV_NOCONV, + __GCONV_NODB, + __GCONV_NOMEM, + __GCONV_EMPTY_INPUT, + __GCONV_FULL_OUTPUT, + __GCONV_ILLEGAL_INPUT, + __GCONV_INCOMPLETE_INPUT, + __GCONV_ILLEGAL_DESCRIPTOR, + __GCONV_INTERNAL_ERROR +}; +int +foo (int result) +{ + int irreversible = 0; + switch (result) + { + case __GCONV_ILLEGAL_INPUT: + irreversible = -1L; + break; + case __GCONV_FULL_OUTPUT: + irreversible = -2L; + break; + case __GCONV_INCOMPLETE_INPUT: + irreversible = -3L; + break; + case __GCONV_EMPTY_INPUT: + case __GCONV_OK: + break; + default: + abort (); + } + return irreversible; +} |