mirror of git://gcc.gnu.org/git/gcc.git
62 lines
841 B
C
62 lines
841 B
C
/* { dg-do compile } */
|
|
/* { dg-options "-O2" } */
|
|
|
|
extern void bar (void);
|
|
|
|
/* Case 181 is not in the range for 'char'. */
|
|
void
|
|
foo1 (char *buf)
|
|
{
|
|
int x = *buf;
|
|
switch (x)
|
|
{
|
|
case -76:
|
|
case 65:
|
|
case 181:
|
|
bar();
|
|
}
|
|
}
|
|
|
|
/* All cases are below the range of char. */
|
|
void
|
|
foo2 (char *buf)
|
|
{
|
|
int x = *buf;
|
|
switch (x)
|
|
{
|
|
case -150:
|
|
case -140:
|
|
case -130:
|
|
bar();
|
|
}
|
|
}
|
|
|
|
/* All cases are above the range of char. */
|
|
void
|
|
foo3 (char *buf)
|
|
{
|
|
int x = *buf;
|
|
switch (x)
|
|
{
|
|
case 130:
|
|
case 140:
|
|
case 150: /* This case is not in the range for 'char'. */
|
|
bar();
|
|
}
|
|
}
|
|
|
|
/* The bounding cases are partially out of range for char. */
|
|
void
|
|
foo4 (char *buf)
|
|
{
|
|
int x = *buf;
|
|
switch (x)
|
|
{
|
|
case -130 ... -120:
|
|
case 100:
|
|
case 120 ... 130:
|
|
bar();
|
|
}
|
|
}
|
|
|