diff --git a/skeletons/REAL.c b/skeletons/REAL.c index 5910ee5751221dd3cfa8c7a6da7b4f7f987d2a16..82ef966ba7ac2bb631d769209b18c1e27167082d 100644 --- a/skeletons/REAL.c +++ b/skeletons/REAL.c @@ -577,8 +577,8 @@ asn_REAL2double(const REAL_t *st, double *dbl_value) { double m; int expval; /* exponent value */ unsigned int elen; /* exponent value length, in octets */ - unsigned int scaleF; - unsigned int baseF; + int scaleF; + int baseF; uint8_t *ptr; uint8_t *end; int sign; @@ -754,8 +754,8 @@ asn_double2REAL(REAL_t *st, double dbl_value) { /* This loop ensures DER conformance by forcing mantissa odd: 11.3.1 */ mval = *mstop; if(mval && !(mval & 1)) { - unsigned int shift_count = 1; - unsigned int ishift; + int shift_count = 1; + int ishift; uint8_t *mptr; /* diff --git a/tests/tests-skeletons/check-REAL.c b/tests/tests-skeletons/check-REAL.c index 9e32c40aa96b1fb7cbbe2c100a3a826bdceb5df4..c7b8112521c365a80560d042bb4a48af0589f58a 100644 --- a/tests/tests-skeletons/check-REAL.c +++ b/tests/tests-skeletons/check-REAL.c @@ -345,8 +345,6 @@ check_ber_857_encoding(int base, int sign, int scaling_factor, int exponent, int static void check_ber_encoding() { - static const double zero = 0.0; - #define CHECK_BER_STRICT(v, nocan, can, inbuf, outbuf) \ check_ber_buffer_twoway(v, nocan, can, inbuf, sizeof(inbuf), \ outbuf, sizeof(outbuf), __LINE__) @@ -382,9 +380,9 @@ check_ber_encoding() { { uint8_t b_pinf[] = { 0x40 }; uint8_t b_minf[] = { 0x41 }; uint8_t b_nan[] = { 0x42 }; - CHECK_BER_STRICT(1.0/zero, "<PLUS-INFINITY/>", "<PLUS-INFINITY/>", b_pinf, b_pinf); - CHECK_BER_STRICT(-1.0/zero, "<MINUS-INFINITY/>", "<MINUS-INFINITY/>", b_minf, b_minf); - CHECK_BER_STRICT(zero/zero, "<NOT-A-NUMBER/>", "<NOT-A-NUMBER/>", b_nan, b_nan); } + CHECK_BER_STRICT(INFINITY, "<PLUS-INFINITY/>", "<PLUS-INFINITY/>", b_pinf, b_pinf); + CHECK_BER_STRICT(-INFINITY, "<MINUS-INFINITY/>", "<MINUS-INFINITY/>", b_minf, b_minf); + CHECK_BER_STRICT(NAN, "<NOT-A-NUMBER/>", "<NOT-A-NUMBER/>", b_nan, b_nan); } /* 8.5.6 b) => 8.5.8 Decimal encoding is used; NR1 form */ { uint8_t b_0_nr1[] = { 0x01, '0' }; @@ -618,16 +616,15 @@ check_ber_encoding() { int main() { REAL_t rn; - static const double zero = 0.0; memset(&rn, 0, sizeof(rn)); check_ber_encoding(); check(&rn, 0.0, "0", "0"); check(&rn, -0.0, "-0", "-0"); /* minus-zero */ - check(&rn, zero/zero, "<NOT-A-NUMBER/>", "<NOT-A-NUMBER/>"); - check(&rn, 1.0/zero, "<PLUS-INFINITY/>", "<PLUS-INFINITY/>"); - check(&rn, -1.0/zero, "<MINUS-INFINITY/>", "<MINUS-INFINITY/>"); + check(&rn, NAN, "<NOT-A-NUMBER/>", "<NOT-A-NUMBER/>"); + check(&rn, INFINITY, "<PLUS-INFINITY/>", "<PLUS-INFINITY/>"); + check(&rn, -INFINITY, "<MINUS-INFINITY/>", "<MINUS-INFINITY/>"); check(&rn, 1.0, "1.0", "1.0E0"); check(&rn, -1.0, "-1.0", "-1.0E0"); check(&rn, 0.1, "0.1", "1.0E-1");