Commit 6ad7803d7842c004c1b36c4e202944507872bdc1

Thomas de Grivel 2023-08-09T08:41:50

wip tag operations

diff --git a/libc3/tag.c b/libc3/tag.c
index 9badf4e..4b4d1cc 100644
--- a/libc3/tag.c
+++ b/libc3/tag.c
@@ -618,8 +618,6 @@ void tag_delete (s_tag *tag)
 s_tag * tag_div (const s_tag *a, const s_tag *b, s_tag *dest)
 {
   s_integer tmp;
-  s_integer tmp2;
-  s_integer tmp3;
   assert(a);
   assert(b);
   assert(dest);
@@ -780,7 +778,7 @@ s_tag * tag_div (const s_tag *a, const s_tag *b, s_tag *dest)
       if (b->data.u64 > S8_MAX)
         return tag_init_s8(dest, 0);
       else
-        return tag_init_s8(dest, a->data.s8 / (s8) b->data.u64));
+        return tag_init_s8(dest, a->data.s8 / (s8) b->data.u64);
     default:
       goto ko;
   }
@@ -807,14 +805,14 @@ s_tag * tag_div (const s_tag *a, const s_tag *b, s_tag *dest)
     case TAG_U8:
       return tag_init_s16(dest, a->data.s16 / (s16) b->data.u8);
     case TAG_U16:
-      return tag_init_s16(dest, (s16) ((s32) a->data.s16 / (s32) b->data.u16);
+      return tag_init_s16(dest, (s16) ((s32) a->data.s16 / (s32) b->data.u16));
     case TAG_U32:
-      return tag_init_s16(dest, (s16) ((s64) a->data.s16 / (s64) b->data.u32)));
+      return tag_init_s16(dest, (s16) ((s64) a->data.s16 / (s64) b->data.u32));
     case TAG_U64:
       if (b->data.u64 > S16_MAX)
         return tag_init_s16(dest, 0);
       else
-        return tag_init_s16(dest, (s16) a->data.s16 / (s16) b->data.u64)));
+        return tag_init_s16(dest, (s16) a->data.s16 / (s16) b->data.u64);
     default:
       goto ko;
   }
@@ -848,7 +846,7 @@ s_tag * tag_div (const s_tag *a, const s_tag *b, s_tag *dest)
       if (b->data.u64 > S32_MAX)
         return tag_init_s32(dest, 0);
       else
-        return tag_init_s32(dest, a->data.s32 / (s32) b->data.u64));
+        return tag_init_s32(dest, a->data.s32 / (s32) b->data.u64);
     default:
       goto ko;
   }
diff --git a/test/ic3/integer.in b/test/ic3/integer.in
index e294cba..7a4e3d0 100644
--- a/test/ic3/integer.in
+++ b/test/ic3/integer.in
@@ -331,7 +331,7 @@
 256 * -18446744073709551616
 256 * -4294967296
 256 * -32769
-256 * -257
+256 * -129
 256 * -1
 256 * 1
 256 * 256