Fix enum bitfields passed to stdarg functions

VT_ENUM types use the .ref member and can be VT_BITFIELD,
so we need to copy it as well.  Simply do it always.
This commit is contained in:
Michael Matz
2016-08-15 18:54:11 +02:00
parent d720865fb6
commit 372f4b6a4e
2 changed files with 6 additions and 0 deletions

View File

@ -602,11 +602,16 @@ enum test {
E5 = 1000,
};
struct S_enum {
enum {E6 = 42, E7, E8} e:8;
};
void enum_test()
{
enum test b1;
/* The following should give no warning */
unsigned *p = &b1;
struct S_enum s = {E7};
printf("enum: %d\n", s.e);
printf("enum:\n%d %d %d %d %d %d\n",
E0, E1, E2, E3, E4, E5);
b1 = 1;