about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2023-02-13 11:24:13 +0100
committerptitSeb <sebastien.chev@gmail.com>2023-02-13 11:24:13 +0100
commit9c8b663d5bc1f30717aa4d87cc63d1c9ebfa1c8e (patch)
tree138dc39b708378f56bf0a5a6ef6fa5e99c704b66 /src
parent8309b63fb10cba69ef5374f9c2e5416369d84bb2 (diff)
downloadbox64-9c8b663d5bc1f30717aa4d87cc63d1c9ebfa1c8e.tar.gz
box64-9c8b663d5bc1f30717aa4d87cc63d1c9ebfa1c8e.zip
Various minor warning fixes
Diffstat (limited to 'src')
-rw-r--r--src/custommem.c11
-rwxr-xr-xsrc/dynarec/arm64/dynarec_arm64_00.c2
-rwxr-xr-xsrc/dynarec/arm64/dynarec_arm64_0f.c7
-rwxr-xr-xsrc/dynarec/arm64/dynarec_arm64_660f.c6
-rwxr-xr-xsrc/dynarec/arm64/dynarec_arm64_67.c2
-rwxr-xr-xsrc/dynarec/arm64/dynarec_arm64_f20f.c30
-rwxr-xr-xsrc/elfs/elfloader.c11
-rw-r--r--src/emu/modrm.h2
-rwxr-xr-xsrc/emu/x64primop.c9
-rwxr-xr-xsrc/emu/x87emu_private.c4
-rwxr-xr-xsrc/main.c2
-rwxr-xr-xsrc/tools/bridge.c2
-rw-r--r--src/tools/rcfile.c5
-rw-r--r--src/wrapped/wrappedgcrypt.c2
-rwxr-xr-xsrc/wrapped/wrappedgdk3.c2
-rwxr-xr-xsrc/wrapped/wrappedlibc.c2
16 files changed, 53 insertions, 46 deletions
diff --git a/src/custommem.c b/src/custommem.c
index ee3d6a22..a88674fd 100644
--- a/src/custommem.c
+++ b/src/custommem.c
@@ -443,6 +443,7 @@ mmapchunk_t* addChunk(size_t mmapsize) {
         } else
             return &head->chunks[i];
     }
+    return NULL;    // never reached
 }
 
 uintptr_t FindFreeDynarecMap(dynablock_t* db, size_t size)
@@ -481,7 +482,7 @@ uintptr_t FindFreeDynarecMap(dynablock_t* db, size_t size)
                     native_lock_decifnot0(&chunk->lock);
                     return ret;
                 } else {
-                    printf_log(LOG_INFO, "BOX64: Warning, sub not found, corrupted mmaplist[%zu] info?\n", i);
+                    printf_log(LOG_INFO, "BOX64: Warning, sub not found, corrupted mmaplist[%i] info?\n", i);
                     native_lock_decifnot0(&chunk->lock);
                     if(box64_log >= LOG_DEBUG)
                         printBlock(chunk->block, chunk->first);
@@ -684,14 +685,14 @@ uintptr_t getSizeJmpDefault(uintptr_t addr, size_t maxsize)
     uintptr_t idx3, idx2, idx1, idx0;
     idx3 = (((uintptr_t)addr)>>48)&0xffff;
     if(box64_jmptbl3[idx3] == box64_jmptbldefault2)
-        return (addr&~((1LL<<48)-1)|0xffffffffffffLL)-addr + 1;
+        return ((addr&~((1LL<<48)-1))|0xffffffffffffLL)-addr + 1;
     idx2 = (((uintptr_t)addr)>>32)&0xffff;
     if(box64_jmptbl3[idx3][idx2] == box64_jmptbldefault1)
-        return (addr&~((1LL<<32)-1)|0xffffffffLL)-addr + 1;
+        return ((addr&~((1LL<<32)-1))|0xffffffffLL)-addr + 1;
     idx1 = (((uintptr_t)addr)>>16)&0xffff;
     uintptr_t* block = box64_jmptbl3[idx3][idx2][idx1];
     if(block == box64_jmptbldefault0)
-        return (addr&~((1LL<<16)-1)|0xffffLL)-addr + 1;
+        return ((addr&~((1LL<<16)-1))|0xffffLL)-addr + 1;
     idx0 = addr&0xffff;
     if (maxsize>0x10000)
         maxsize = 0x10000;
@@ -1480,7 +1481,7 @@ void init_custommem_helper(box64context_t* ctx)
     loadProtectionFromMap();
     // check if PageSize is correctly defined
     if(box64_pagesize != (1<<MEMPROT_SHIFT)) {
-        printf_log(LOG_NONE, "Error: PageSize configuation is wrong: configured with %d, but got %d\n", 1<<MEMPROT_SHIFT, box64_pagesize);
+        printf_log(LOG_NONE, "Error: PageSize configuation is wrong: configured with %d, but got %zd\n", 1<<MEMPROT_SHIFT, box64_pagesize);
         exit(-1);   // abort or let it continue?
     }
 }
diff --git a/src/dynarec/arm64/dynarec_arm64_00.c b/src/dynarec/arm64/dynarec_arm64_00.c
index b1641b2f..77f0660e 100755
--- a/src/dynarec/arm64/dynarec_arm64_00.c
+++ b/src/dynarec/arm64/dynarec_arm64_00.c
@@ -41,7 +41,7 @@ uintptr_t dynarec64_00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
     uint8_t wback, wb1, wb2, wb;
     int64_t fixedaddress;
     int lock;
-    int cacheupd;
+    int cacheupd = 0;
 
     opcode = F8;
     MAYUSE(eb1);
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c
index bcdf66b4..ed2a120b 100755
--- a/src/dynarec/arm64/dynarec_arm64_0f.c
+++ b/src/dynarec/arm64/dynarec_arm64_0f.c
@@ -75,7 +75,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
     uint8_t wback, wb2;

     uint8_t eb1, eb2;

     int32_t i32, i32_;

-    int cacheupd;

+    int cacheupd = 0;

     int v0, v1;

     int q0, q1;

     int d0, d1;

@@ -1689,9 +1689,10 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
             INST_NAME("SHUFPS Gx, Ex, Ib");

             nextop = F8;

             GETGX(v0, 1);

-            if(!MODREG)

+            if(!MODREG) {

                 addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, 0, 0, rex, NULL, 0, 1);

-            else

+                v1 = 0; // to avoid a warning

+            } else

                 v1 = sse_get_reg(dyn, ninst, x1, (nextop&7)+(rex.b<<3), 0);

             u8 = F8;

             if(MODREG && v0==v1 && (u8&0x3)==((u8>>2)&3) && (u8&0xf)==((u8>>4)&0xf)) {

diff --git a/src/dynarec/arm64/dynarec_arm64_660f.c b/src/dynarec/arm64/dynarec_arm64_660f.c
index 80002dbe..5ff39e2b 100755
--- a/src/dynarec/arm64/dynarec_arm64_660f.c
+++ b/src/dynarec/arm64/dynarec_arm64_660f.c
@@ -815,13 +815,13 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
                 v1 = fpu_get_scratch(dyn);

                 // check if any input value was NAN

                 VFCMEQQD(v0, q0, q0);    // 0 if NAN, 1 if not NAN

-            }

-            VFSQRTQD(q1, q0);

-            if(!box64_dynarec_fastnan) {

+                VFSQRTQD(q1, q0);

                 VFCMEQQD(v1, q1, q1);    // 0 => out is NAN

                 VBICQ(v1, v0, v1);      // forget it in any input was a NAN already

                 VSHLQ_64(v1, v1, 63);   // only keep the sign bit

                 VORRQ(q1, q1, v1);      // NAN -> -NAN

+            } else {

+                VFSQRTQD(q1, q0);

             }

             break;

      

diff --git a/src/dynarec/arm64/dynarec_arm64_67.c b/src/dynarec/arm64/dynarec_arm64_67.c
index 1b35d645..094f68e7 100755
--- a/src/dynarec/arm64/dynarec_arm64_67.c
+++ b/src/dynarec/arm64/dynarec_arm64_67.c
@@ -44,7 +44,7 @@ uintptr_t dynarec64_67(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin
     uint8_t u8;

     int32_t i32;

     int64_t j64, i64;

-    int cacheupd;

+    int cacheupd = 0;

     int lock;

     int v0, v1, s0;

     MAYUSE(i32);

diff --git a/src/dynarec/arm64/dynarec_arm64_f20f.c b/src/dynarec/arm64/dynarec_arm64_f20f.c
index 0a250206..153b634f 100755
--- a/src/dynarec/arm64/dynarec_arm64_f20f.c
+++ b/src/dynarec/arm64/dynarec_arm64_f20f.c
@@ -188,10 +188,10 @@ uintptr_t dynarec64_F20F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
                 v1 = fpu_get_scratch(dyn);

                 FCMLTD_0(v1, d0);

                 SHL_64(v1, v1, 63);

-            }

-            FSQRTD(d1, d0);

-            if(!box64_dynarec_fastnan) {

+                FSQRTD(d1, d0);

                 VORR(d1, d1, v1);

+            } else {

+                FSQRTD(d1, d0);

             }

             VMOVeD(v0, 0, d1, 0);

             break;

@@ -208,13 +208,13 @@ uintptr_t dynarec64_F20F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
                 // check if any input value was NAN

                 FMAXD(v0, d0, d1);    // propagate NAN

                 FCMEQD(v0, v0, v0);    // 0 if NAN, 1 if not NAN

-            }

-            FADDD(v1, d1, d0);  // the high part of the vector is erased...

-            if(!box64_dynarec_fastnan) {

+                FADDD(v1, d1, d0);  // the high part of the vector is erased...

                 FCMEQD(q0, v1, v1);    // 0 => out is NAN

                 VBIC(q0, v0, q0);      // forget it in any input was a NAN already

                 SHL_64(q0, q0, 63);     // only keep the sign bit

                 VORR(v1, v1, q0);      // NAN -> -NAN

+            } else {

+                FADDD(v1, d1, d0);  // the high part of the vector is erased...

             }

             VMOVeD(d1, 0, v1, 0);

             break;

@@ -230,13 +230,13 @@ uintptr_t dynarec64_F20F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
                 // check if any input value was NAN

                 FMAXD(v0, d0, d1);    // propagate NAN

                 FCMEQD(v0, v0, v0);    // 0 if NAN, 1 if not NAN

-            }

-            FMULD(v1, d1, d0);

-            if(!box64_dynarec_fastnan) {

+                FMULD(v1, d1, d0);

                 FCMEQD(q0, v1, v1);    // 0 => out is NAN

                 VBIC(q0, v0, q0);      // forget it in any input was a NAN already

                 SHL_64(q0, q0, 63);     // only keep the sign bit

                 VORR(v1, v1, q0);      // NAN -> -NAN

+            } else {

+                FMULD(v1, d1, d0);

             }

             VMOVeD(d1, 0, v1, 0);

             break;

@@ -262,13 +262,13 @@ uintptr_t dynarec64_F20F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
                 // check if any input value was NAN

                 FMAXD(v0, d0, d1);    // propagate NAN

                 FCMEQD(v0, v0, v0);    // 0 if NAN, 1 if not NAN

-            }

-            FSUBD(v1, d1, d0);

-            if(!box64_dynarec_fastnan) {

+                FSUBD(v1, d1, d0);

                 FCMEQD(q0, v1, v1);    // 0 => out is NAN

                 VBIC(q0, v0, q0);      // forget it in any input was a NAN already

                 SHL_64(q0, q0, 63);     // only keep the sign bit

                 VORR(v1, v1, q0);      // NAN -> -NAN

+            } else {

+                FSUBD(v1, d1, d0);

             }

             VMOVeD(d1, 0, v1, 0);

             break;

@@ -300,13 +300,13 @@ uintptr_t dynarec64_F20F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
                 // check if any input value was NAN

                 FMAXD(d0, v0, v1);      // propagate NAN

                 FCMEQD(d0, d0, d0);     // 0 if NAN, 1 if not NAN

-            }

-            FDIVD(d1, v0, v1);

-            if(!box64_dynarec_fastnan) {

+                FDIVD(d1, v0, v1);

                 FCMEQD(q0, d1, d1);     // 0 => out is NAN

                 VBIC(q0, d0, q0);       // forget it in any input was a NAN already

                 SHL_64(q0, q0, 63);     // only keep the sign bit

                 VORR(d1, d1, q0);       // NAN -> -NAN

+            } else {

+                FDIVD(d1, v0, v1);

             }

             VMOVeD(v0, 0, d1, 0);

             break;

diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c
index 69c7797d..ec0b344c 100755
--- a/src/elfs/elfloader.c
+++ b/src/elfs/elfloader.c
@@ -1617,25 +1617,26 @@ void CreateMemorymapFile(box64context_t* context, int fd)
         uintptr_t start, end;
         if (sscanf(line, "%zx-%zx", &start, &end)==2) {
             elfheader_t* h = FindElfAddress(my_context, start);
-            size_t l = strlen(line);
+            int l = strlen(line);
             if(h && l<73) {
-                sprintf(buff, "%s%*s\n", line, 74-strlen(line), h->name);
+                sprintf(buff, "%s%*s\n", line, 74-l, h->name);
                 dummy = write(fd, buff, strlen(buff));
             } else if(start==(uintptr_t)my_context->stack) {
-                sprintf(buff, "%s%*s\n", line, 74-strlen(line), "[stack]");
+                sprintf(buff, "%s%*s\n", line, 74-l, "[stack]");
                 dummy = write(fd, buff, strlen(buff));
             } else if (strstr(line, "[stack]")) {
                 char* p = strstr(line, "[stack]")-1;
                 while (*p==' ' || *p=='\t') --p;
                 p[1]='\0';
                 strcat(line, "\n");
-                write(fd, line, strlen(line));
+                dummy = write(fd, line, strlen(line));
             } else {
-                write(fd, line, strlen(line));
+                dummy = write(fd, line, strlen(line));
             }
         }
     }
     fclose(f);
+    (void)dummy;
 }
 
 void ElfAttachLib(elfheader_t* head, library_t* lib)
diff --git a/src/emu/modrm.h b/src/emu/modrm.h
index d3ccd18c..c01343b0 100644
--- a/src/emu/modrm.h
+++ b/src/emu/modrm.h
@@ -11,7 +11,7 @@
 #ifdef DYNAREC

 #define STEP if(step) return 0;

 #define STEP2 if(step) {R_RIP = addr; return 0;}

-#define STEP3 if(*step) *(step)++;

+#define STEP3 if(*step) (*step)++;

 #else

 #define STEP

 #define STEP2

diff --git a/src/emu/x64primop.c b/src/emu/x64primop.c
index c45cb654..b0270491 100755
--- a/src/emu/x64primop.c
+++ b/src/emu/x64primop.c
@@ -1189,8 +1189,9 @@ uint16_t sbb16(x64emu_t *emu, uint16_t d, uint16_t s)
 
 	if (ACCESS_FLAG(F_CF))
         res = d - s - 1;
-    else
+    else {
         res = d - s;
+	}
    	CONDITIONAL_SET_FLAG(res & 0x8000, F_SF);
    	CONDITIONAL_SET_FLAG((res & 0xffff) == 0, F_ZF);
    	CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
@@ -1211,8 +1212,9 @@ uint32_t sbb32(x64emu_t *emu, uint32_t d, uint32_t s)
 
 	if (ACCESS_FLAG(F_CF))
         res = d - s - 1;
-    else
+    else {
         res = d - s;
+	}
   	CONDITIONAL_SET_FLAG(res & 0x80000000, F_SF);
   	CONDITIONAL_SET_FLAG(!res, F_ZF);
   	CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
@@ -1233,8 +1235,9 @@ uint64_t sbb64(x64emu_t *emu, uint64_t d, uint64_t s)
 
 	if (ACCESS_FLAG(F_CF))
         res = d - s - 1;
-    else
+    else {
         res = d - s;
+	}
   	CONDITIONAL_SET_FLAG(res & 0x8000000000000000LL, F_SF);
   	CONDITIONAL_SET_FLAG(!res, F_ZF);
   	CONDITIONAL_SET_FLAG(PARITY(res & 0xff), F_PF);
diff --git a/src/emu/x87emu_private.c b/src/emu/x87emu_private.c
index 7a16cd97..fc104557 100755
--- a/src/emu/x87emu_private.c
+++ b/src/emu/x87emu_private.c
@@ -201,7 +201,7 @@ void D2LD(void* d, void* ld)
 
 double FromLD(void* ld)
 {
-    double ret;
+    double ret = 0;
     LD2D(ld, &ret);
     return ret;
 }
@@ -210,7 +210,7 @@ double FromLD(void* ld)
 long double LD2localLD(void* ld)
 {
     // local implementation may not be try Quad precision, but double-double precision, so simple way to keep the 80bits precision in the conversion
-    double ret;
+    double ret = 0;
     LD2D(ld, &ret);
     return ret;
 }
diff --git a/src/main.c b/src/main.c
index 4691d5fc..2ac564cc 100755
--- a/src/main.c
+++ b/src/main.c
@@ -1131,7 +1131,7 @@ static void load_rcfiles()
     char* p = getenv("HOME");
     if(p) {
         char tmp[4096];
-        strncpy(tmp, p, 4096);
+        strncpy(tmp, p, 4095);
         strncat(tmp, "/.box64rc", 4095);
         if(FileExist(tmp, IS_FILE))
             LoadRCFile(tmp);
diff --git a/src/tools/bridge.c b/src/tools/bridge.c
index 514ce989..3bc7ca22 100755
--- a/src/tools/bridge.c
+++ b/src/tools/bridge.c
@@ -60,7 +60,7 @@ brick_t* NewBrick(void* old)
     if(ptr == MAP_FAILED) {
         printf_log(LOG_NONE, "Warning, cannot allocate 0x%lx aligned bytes for bridge, will probably crash later\n", NBRICK*sizeof(onebridge_t));
     }
-    dynarec_log(LOG_INFO, "New Bridge brick at %p (size 0x%x)\n", ptr, NBRICK*sizeof(onebridge_t));
+    dynarec_log(LOG_INFO, "New Bridge brick at %p (size 0x%zx)\n", ptr, NBRICK*sizeof(onebridge_t));
     ret->b = ptr;
     return ret;
 }
diff --git a/src/tools/rcfile.c b/src/tools/rcfile.c
index 65474f80..ec083b5c 100644
--- a/src/tools/rcfile.c
+++ b/src/tools/rcfile.c
@@ -257,7 +257,8 @@ void LoadRCFile(const char* filename)
         int tmp = shm_open(TMP_MEMRCFILE, O_RDWR | O_CREAT, S_IRWXU);
         if(tmp<0) return; // error, bye bye
         shm_unlink(TMP_MEMRCFILE);    // remove the shm file, but it will still exist because it's currently in use
-        write(tmp, default_rcfile, sizeof(default_rcfile));
+        int dummy = write(tmp, default_rcfile, sizeof(default_rcfile));
+        (void)dummy;
         lseek(tmp, 0, SEEK_SET);
         f = fdopen(tmp, "r");
     }
@@ -506,7 +507,7 @@ void ApplyParams(const char* name)
         uintptr_t no_start = 0, no_end = 0;
         char* p;
         no_start = strtoul(param->box64_nodynarec, &p, 0);
-        if(p!=param->box64_nodynarec & p[0]=='-') {
+        if(p!=param->box64_nodynarec && p[0]=='-') {
             char* p2;
             ++p;
             no_end = strtoul(p, &p2, 0);
diff --git a/src/wrapped/wrappedgcrypt.c b/src/wrapped/wrappedgcrypt.c
index 1b9f9b36..f04e5232 100644
--- a/src/wrapped/wrappedgcrypt.c
+++ b/src/wrapped/wrappedgcrypt.c
@@ -33,7 +33,7 @@ typedef uint32_t  (*uFpppp_t)(void*, void*, void*, void*);
 EXPORT uint32_t my_gcry_sexp_build(x64emu_t* emu, void* r_sexp, void* erroff, const char* fmt, uintptr_t* V)
 {
     // count the number of elements
-    int n;
+    int n = 0;
     const char* p = fmt;
     while(p) {
         if(*p == '%') {
diff --git a/src/wrapped/wrappedgdk3.c b/src/wrapped/wrappedgdk3.c
index 3e9899e0..671301b9 100755
--- a/src/wrapped/wrappedgdk3.c
+++ b/src/wrapped/wrappedgdk3.c
@@ -23,7 +23,7 @@ const char* gdk3Name = "libgdk-3.so.0";
 
 static char* libname = NULL;
 
-//#define ADDED_FUNCTIONS()           \
+//#define ADDED_FUNCTIONS()
 
 #include "generated/wrappedgdk3types.h"
 
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c
index 8ee59a30..2d444efd 100755
--- a/src/wrapped/wrappedlibc.c
+++ b/src/wrapped/wrappedlibc.c
@@ -3005,7 +3005,7 @@ EXPORT int my_clone(x64emu_t* emu, void* fn, void* stack, int flags, void* args,
     arg->fnc = (uintptr_t)fn;
     arg->tls = tls;
     arg->emu = newemu;
-    if(flags|(CLONE_VM|CLONE_VFORK|CLONE_SETTLS)==flags)   // that's difficult to setup, so lets ignore all those flags :S
+    if((flags|(CLONE_VM|CLONE_VFORK|CLONE_SETTLS))==flags)   // that's difficult to setup, so lets ignore all those flags :S
         flags&=~(CLONE_VM|CLONE_VFORK|CLONE_SETTLS);
     int64_t ret = clone(clone_fn, (void*)((uintptr_t)mystack+1024*1024), flags, arg, parent, NULL, child);
     return (uintptr_t)ret;