aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2024-04-17 17:49:30 +0000
committerDimitry Andric <dim@FreeBSD.org>2024-04-24 21:27:11 +0000
commit689dbdedd8bdaa0e6c7149a7a26dc77ba9db886e (patch)
treedca2a81ca745b1d82af3e8f8476003f048585766
parent164f125311a6cc0217ce9103aaefcfd31fb796bf (diff)
downloadsrc-689dbdedd8bdaa0e6c7149a7a26dc77ba9db886e.tar.gz
src-689dbdedd8bdaa0e6c7149a7a26dc77ba9db886e.zip
heimdal: asn1: Use unsigned bitfields for named bitsets
Import upstream 6747e1628: asn1: Use unsigned bitfields for named bitsets Signed 1-bit bitfields are undefined in C. This should fix the following warnings, which for unknown reasons are errors in CI: /usr/src/crypto/heimdal/lib/hx509/ca.c:1020:22: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion] 1020 | ku.digitalSignature = 1; | ^ ~ /usr/src/crypto/heimdal/lib/hx509/ca.c:1021:21: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion] 1021 | ku.keyEncipherment = 1; | ^ ~ /usr/src/crypto/heimdal/lib/hx509/ca.c:1028:17: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion] 1028 | ku.keyCertSign = 1; | ^ ~ /usr/src/crypto/heimdal/lib/hx509/ca.c:1029:13: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion] 1029 | ku.cRLSign = 1; | ^ ~ PR: 276960 Fixes: 1b7487592987 MFC after: 1 week (cherry picked from commit 219b6e442308d5353b2af5f0771ce9b887b70754)
-rw-r--r--crypto/heimdal/lib/asn1/gen.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/heimdal/lib/asn1/gen.c b/crypto/heimdal/lib/asn1/gen.c
index 76a893c5ade7..f35d41667a57 100644
--- a/crypto/heimdal/lib/asn1/gen.c
+++ b/crypto/heimdal/lib/asn1/gen.c
@@ -727,10 +727,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 %" PRId64 " -> %" PRId64 "",
name, t->range->min, t->range->max);