https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113382
--- Comment #3 from John David Anglin <danglin at gcc dot gnu.org> ---
btf_kflag is set here:
else if (btf_kind == BTF_KIND_ENUM)
{
btf_kflag = dtd->dtd_enum_unsigned
? BTF_KF_ENUM_UNSIGNED
: BTF_KF_ENUM_SIGNED;
(gdb) p dtd->dtd_enum_unsigned
$10 = false
/* BTF_KF_ENUM_ holds the flags for kflags in BTF_KIND_ENUM{,64}. */
#define BTF_KF_ENUM_UNSIGNED (0)
#define BTF_KF_ENUM_SIGNED (1 << 0)
Test has:
enum foo
{
BAR = 0,
BAZ = 1,
QUZ = 2,
QUX = 3
};
I think the choice of signed int is correct:
https://en.cppreference.com/w/c/language/enum
But then there are articles indicating that the type is implementation
dependent:
https://stackoverflow.com/questions/159034/are-c-enums-signed-or-unsigned
Maybe test needs to handle either case.