58 lines
672 B
C
58 lines
672 B
C
// PR c++/16276
|
|
// { dg-do link }
|
|
// { dg-additional-sources " comdat4-aux.cc" }
|
|
// { dg-options "-O2" }
|
|
|
|
extern void
|
|
bar (int x);
|
|
|
|
inline void
|
|
foo (int i)
|
|
{
|
|
switch (i)
|
|
{
|
|
case 3:
|
|
case 5:
|
|
case 6:
|
|
case 9:
|
|
case 15:
|
|
bar (1);
|
|
break;
|
|
case 2:
|
|
case 4:
|
|
case 7:
|
|
case 10:
|
|
case 11:
|
|
case 12:
|
|
bar (2);
|
|
break;
|
|
case 0:
|
|
case 1:
|
|
case 8:
|
|
case 13:
|
|
case 16:
|
|
bar (3);
|
|
break;
|
|
case 14:
|
|
bar (4);
|
|
break;
|
|
default:
|
|
bar (5);
|
|
break;
|
|
}
|
|
}
|
|
|
|
void *fooaddr = (void *) foo;
|
|
|
|
void
|
|
bar (int x)
|
|
{
|
|
__asm __volatile ("" : : "r" (x));
|
|
}
|
|
|
|
int
|
|
main (void)
|
|
{
|
|
return 0;
|
|
}
|