]> Kevux Git Server - fll/commitdiff
Bugfix: Add missing endianness check to f_convesion.
authorKevin Day <thekevinday@gmail.com>
Sun, 19 Jun 2022 00:11:07 +0000 (19:11 -0500)
committerKevin Day <thekevinday@gmail.com>
Sun, 19 Jun 2022 00:12:01 +0000 (19:12 -0500)
This just adds the inverse shift on the assumption that the original code is correct and is for little-endian.

level_0/f_conversion/c/private-conversion.c

index 0bd7e92137ce2d7c3134ba3ad81225260e24e806..72d0e67dc822fcb4541266bac7318caa84005322 100644 (file)
@@ -96,7 +96,11 @@ extern "C" {
     } // for
 
     if (data.base == 2) {
-      work = 0x1 << (digits - 1);
+      #ifdef _is_F_endian_big
+        work = 0x1 >> (digits - 1);
+      #else
+        work = 0x1 << (digits - 1);
+      #endif // _is_F_endian_big
 
       while (digits--) {
 
@@ -347,7 +351,11 @@ extern "C" {
     } // for
 
     if (data.base == 2) {
-      f_number_unsigned_t work = 0x1 << (digits - 1);
+      #ifdef _is_F_endian_big
+        f_number_unsigned_t work = 0x1 >> (digits - 1);
+      #else
+        f_number_unsigned_t work = 0x1 << (digits - 1);
+      #endif // _is_F_endian_big
 
       while (digits--) {