1 /* { dg-do assemble } */ 2 /* { dg-require-effective-target fpic } */ 3 /* { dg-options "-O2 -fpic" } */ 4 5 extern void abort (void); 6 enum 7 { 8 __GCONV_OK = 0, 9 __GCONV_NOCONV, 10 __GCONV_NODB, 11 __GCONV_NOMEM, 12 __GCONV_EMPTY_INPUT, 13 __GCONV_FULL_OUTPUT, 14 __GCONV_ILLEGAL_INPUT, 15 __GCONV_INCOMPLETE_INPUT, 16 __GCONV_ILLEGAL_DESCRIPTOR, 17 __GCONV_INTERNAL_ERROR 18 }; 19 int foo(int result)20foo (int result) 21 { 22 int irreversible = 0; 23 switch (result) 24 { 25 case __GCONV_ILLEGAL_INPUT: 26 irreversible = -1L; 27 break; 28 case __GCONV_FULL_OUTPUT: 29 irreversible = -2L; 30 break; 31 case __GCONV_INCOMPLETE_INPUT: 32 irreversible = -3L; 33 break; 34 case __GCONV_EMPTY_INPUT: 35 case __GCONV_OK: 36 break; 37 default: 38 abort (); 39 } 40 return irreversible; 41 } 42