blob: e54b2e423fb6c322756ef533c7a75fa82a946aac [file] [log] [blame]
// PR c++/13371
// Bug: We were failing to properly protect the lhs on the line marked
// "here" from multiple evaluation.
// { dg-do run }
extern "C" int printf (const char *, ...);
enum E { E1, E2 };
struct A
{
E e : 8;
unsigned char c;
};
A ar[2];
int c;
int f()
{
++c;
printf ("f()\n");
return 0;
}
int main()
{
ar[0].c = 0xff;
ar[f()].e = E1; // here
return (c != 1 || ar[0].c != 0xff);
}