aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/testsuite/gcc.dg/pr47446-1.c
diff options
context:
space:
mode:
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.c40
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;
+}