From 6747e1628335f1552fde1c40b00a4aa7792d90de Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Thu, 25 Feb 2021 16:33:33 -0600 Subject: [PATCH] asn1: Use unsigned bitfields for named bitsets Signed 1-bit bitfields are undefined in C. --- lib/asn1/gen.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/asn1/gen.c b/lib/asn1/gen.c index c57b67a1f..a96e59619 100644 --- a/lib/asn1/gen.c +++ b/lib/asn1/gen.c @@ -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);