1/* Spurious uninit variable warnings, case 3. 2 Inspired by cppexp.c (parse_charconst) */ 3/* { dg-do compile } */ 4/* { dg-options "-O -Wuninitialized" } */ 5 6extern void error (char *); 7 8int 9parse_charconst (const char *start, const char *end) 10{ 11 int c; /* { dg-bogus "c" "uninitialized variable warning" } */ 12 int nchars, retval; 13 14 nchars = 0; 15 retval = 0; 16 while (start < end) 17 { 18 c = *start++; 19 if (c == '\'') 20 break; 21 nchars++; 22 retval += c; 23 retval <<= 8; 24 } 25 26 if (nchars == 0) 27 return 0; 28 29 if (c != '\'') 30 error ("malformed character constant"); 31 32 return retval; 33} 34