]> git.sur5r.net Git - openocd/commitdiff
x86_32_common: fix some warnings
authorPaul Fertser <fercerpav@gmail.com>
Wed, 17 Jan 2018 19:00:42 +0000 (22:00 +0300)
committerPaul Fertser <fercerpav@gmail.com>
Tue, 30 Jan 2018 07:34:32 +0000 (07:34 +0000)
Mostly "Dead assignment" reported by Clang static analyzer.

Change-Id: Ibf81d2ba2462570ee3a40e57a60c55a1d1fa0c00
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Reviewed-on: http://openocd.zylin.com/4351
Tested-by: jenkins
src/target/x86_32_common.c

index 0d87ba5a2eb223ab393e621ef277a9a3384cdfd3..ef4f806801c94350abe131074a3940d38e785fab 100644 (file)
@@ -209,15 +209,16 @@ static int read_phys_mem(struct target *t, uint32_t phys_address,
                        LOG_ERROR("%s invalid read size", __func__);
                        break;
                }
+               if (retval != ERROR_OK)
+                       break;
        }
        /* restore CR0.PG bit if needed (regardless of retval) */
        if (pg_disabled) {
-               retval = x86_32->enable_paging(t);
-               if (retval != ERROR_OK) {
+               int retval2 = x86_32->enable_paging(t);
+               if (retval2 != ERROR_OK) {
                        LOG_ERROR("%s could not enable paging", __func__);
-                       return retval;
+                       return retval2;
                }
-               pg_disabled = true;
        }
        /* TODO: After reading memory from target, we must replace
         * software breakpoints with the original instructions again.
@@ -364,6 +365,9 @@ static int read_mem(struct target *t, uint32_t size,
                        break;
        }
 
+       if (retval != ERROR_OK)
+               return retval;
+
        /* read_hw_reg() will write to 4 bytes (uint32_t)
         * Watch out, the buffer passed into read_mem() might be 1 or 2 bytes.
         */
@@ -436,6 +440,10 @@ static int write_mem(struct target *t, uint32_t size,
                        LOG_ERROR("%s invalid write mem size", __func__);
                        return ERROR_FAIL;
        }
+
+       if (retval != ERROR_OK)
+               return retval;
+
        retval = x86_32->transaction_status(t);
        if (retval != ERROR_OK) {
                LOG_ERROR("%s error on mem write", __func__);
@@ -606,7 +614,6 @@ int x86_32_common_read_memory(struct target *t, target_addr_t addr,
                        && x86_32_common_read_phys_mem(t, physaddr, size, count, buf) != ERROR_OK) {
                        LOG_ERROR("%s failed to read memory from physical address " TARGET_ADDR_FMT,
                                          __func__, physaddr);
-                       retval = ERROR_FAIL;
                }
                /* restore PG bit if it was cleared prior (regardless of retval) */
                retval = x86_32->enable_paging(t);
@@ -662,7 +669,6 @@ int x86_32_common_write_memory(struct target *t, target_addr_t addr,
                        && x86_32_common_write_phys_mem(t, physaddr, size, count, buf) != ERROR_OK) {
                        LOG_ERROR("%s failed to write memory to physical address " TARGET_ADDR_FMT,
                                        __func__, physaddr);
-                       retval = ERROR_FAIL;
                }
                /* restore PG bit if it was cleared prior (regardless of retval) */
                retval = x86_32->enable_paging(t);
@@ -733,15 +739,19 @@ int x86_32_common_read_io(struct target *t, uint32_t addr,
                        LOG_ERROR("%s invalid read io size", __func__);
                        return ERROR_FAIL;
        }
+
        /* restore CR0.PG bit if needed */
        if (pg_disabled) {
-               retval = x86_32->enable_paging(t);
-               if (retval != ERROR_OK) {
+               int retval2 = x86_32->enable_paging(t);
+               if (retval2 != ERROR_OK) {
                        LOG_ERROR("%s could not enable paging", __func__);
-                       return retval;
+                       return retval2;
                }
-               pg_disabled = false;
        }
+
+       if (retval != ERROR_OK)
+               return retval;
+
        uint32_t regval = 0;
        retval = x86_32->read_hw_reg(t, EAX, &regval, 0);
        if (retval != ERROR_OK) {
@@ -818,15 +828,19 @@ int x86_32_common_write_io(struct target *t, uint32_t addr,
                        LOG_ERROR("%s invalid write io size", __func__);
                        return ERROR_FAIL;
        }
+
        /* restore CR0.PG bit if needed */
        if (pg_disabled) {
-               retval = x86_32->enable_paging(t);
-               if (retval != ERROR_OK) {
+               int retval2 = x86_32->enable_paging(t);
+               if (retval2 != ERROR_OK) {
                        LOG_ERROR("%s could not enable paging", __func__);
-                       return retval;
+                       return retval2;
                }
-               pg_disabled = false;
        }
+
+       if (retval != ERROR_OK)
+               return retval;
+
        retval = x86_32->transaction_status(t);
        if (retval != ERROR_OK) {
                LOG_ERROR("%s error on io write", __func__);
@@ -1141,7 +1155,6 @@ static int set_breakpoint(struct target *t, struct breakpoint *bp)
                        }
                } else {
                        LOG_ERROR("%s core doesn't support SW breakpoints", __func__);
-                       error = ERROR_FAIL;
                        return ERROR_FAIL;
                }
        }