enums and ints are compatible

This commit is contained in:
Michael Matz
2016-08-07 00:09:10 +02:00
parent c0368604e1
commit b1a906b970
2 changed files with 10 additions and 0 deletions

View File

@ -2565,6 +2565,14 @@ static int compare_types(CType *type1, CType *type2, int unqualified)
t1 &= ~VT_DEFSIGN;
t2 &= ~VT_DEFSIGN;
}
if ((t1 & VT_BTYPE) == VT_ENUM) {
/* An enum is compatible with (unsigned) int. */
t1 = VT_INT | (t1 & ~VT_BTYPE);
}
if ((t2 & VT_BTYPE) == VT_ENUM) {
/* An enum is compatible with (unsigned) int. */
t2 = VT_INT | (t2 & ~VT_BTYPE);
}
/* XXX: bitfields ? */
if (t1 != t2)
return 0;