asn1: Use unsigned bitfields for named bitsets

Signed 1-bit bitfields are undefined in C.
This commit is contained in:
Nicolas Williams
2021-02-25 16:33:33 -06:00
parent d5099a8d3b
commit 6747e16283

View File

@@ -846,10 +846,10 @@ define_type (int level, const char *name, const char *basename, Type *t, int typ
fprintf(headerfile, "int64_t %s;\n", name);
} else if (t->range->min >= 0 && t->range->max > UINT_MAX) {
fprintf (headerfile, "uint64_t %s;\n", name);
} else if (t->range->min >= INT_MIN && t->range->max <= INT_MAX) {
fprintf (headerfile, "int %s;\n", name);
} else if (t->range->min >= 0 && t->range->max <= UINT_MAX) {
fprintf (headerfile, "unsigned int %s;\n", name);
} else if (t->range->min >= INT_MIN && t->range->max <= INT_MAX) {
fprintf (headerfile, "int %s;\n", name);
} else
errx(1, "%s: unsupported range %lld -> %lld",
name, (long long)t->range->min, (long long)t->range->max);