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