target/rx: Fix compiler errors for build with sanitizers
gcc (Debian 10.2.1-6) 10.2.1 20210110 aborts builds with enabled sanitizers: ../../../target/rx/op_helper.c: In function ‘helper_scmpu’: ../../../target/rx/op_helper.c:213:24: error: ‘tmp1’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 213 | env->psw_c = (tmp0 >= tmp1); | ~~~~~~^~~~~~~~ ../../../target/rx/op_helper.c:213:24: error: ‘tmp0’ may be used uninitialized in this function [-Werror=maybe-uninitialized] ../../../target/rx/op_helper.c: In function ‘helper_suntil’: ../../../target/rx/op_helper.c:299:23: error: ‘tmp’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 299 | env->psw_c = (tmp <= env->regs[2]); | ~~~~~^~~~~~~~~~~~~~~~ ../../../target/rx/op_helper.c: In function ‘helper_swhile’: ../../../target/rx/op_helper.c:318:23: error: ‘tmp’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 318 | env->psw_c = (tmp <= env->regs[2]); | ~~~~~^~~~~~~~~~~~~~~~ Rewriting the code fixes those errors. Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-Id: <20210128172127.46041-1-sw@weilnetz.de> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
0c373c0178
commit
77182df19f
@ -201,14 +201,14 @@ void helper_scmpu(CPURXState *env)
|
|||||||
if (env->regs[3] == 0) {
|
if (env->regs[3] == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
while (env->regs[3] != 0) {
|
do {
|
||||||
tmp0 = cpu_ldub_data_ra(env, env->regs[1]++, GETPC());
|
tmp0 = cpu_ldub_data_ra(env, env->regs[1]++, GETPC());
|
||||||
tmp1 = cpu_ldub_data_ra(env, env->regs[2]++, GETPC());
|
tmp1 = cpu_ldub_data_ra(env, env->regs[2]++, GETPC());
|
||||||
env->regs[3]--;
|
env->regs[3]--;
|
||||||
if (tmp0 != tmp1 || tmp0 == '\0') {
|
if (tmp0 != tmp1 || tmp0 == '\0') {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
} while (env->regs[3] != 0);
|
||||||
env->psw_z = tmp0 - tmp1;
|
env->psw_z = tmp0 - tmp1;
|
||||||
env->psw_c = (tmp0 >= tmp1);
|
env->psw_c = (tmp0 >= tmp1);
|
||||||
}
|
}
|
||||||
@ -287,14 +287,14 @@ void helper_suntil(CPURXState *env, uint32_t sz)
|
|||||||
if (env->regs[3] == 0) {
|
if (env->regs[3] == 0) {
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
while (env->regs[3] != 0) {
|
do {
|
||||||
tmp = cpu_ldufn[sz](env, env->regs[1], GETPC());
|
tmp = cpu_ldufn[sz](env, env->regs[1], GETPC());
|
||||||
env->regs[1] += 1 << sz;
|
env->regs[1] += 1 << sz;
|
||||||
env->regs[3]--;
|
env->regs[3]--;
|
||||||
if (tmp == env->regs[2]) {
|
if (tmp == env->regs[2]) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
} while (env->regs[3] != 0);
|
||||||
env->psw_z = tmp - env->regs[2];
|
env->psw_z = tmp - env->regs[2];
|
||||||
env->psw_c = (tmp <= env->regs[2]);
|
env->psw_c = (tmp <= env->regs[2]);
|
||||||
}
|
}
|
||||||
@ -306,14 +306,14 @@ void helper_swhile(CPURXState *env, uint32_t sz)
|
|||||||
if (env->regs[3] == 0) {
|
if (env->regs[3] == 0) {
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
while (env->regs[3] != 0) {
|
do {
|
||||||
tmp = cpu_ldufn[sz](env, env->regs[1], GETPC());
|
tmp = cpu_ldufn[sz](env, env->regs[1], GETPC());
|
||||||
env->regs[1] += 1 << sz;
|
env->regs[1] += 1 << sz;
|
||||||
env->regs[3]--;
|
env->regs[3]--;
|
||||||
if (tmp != env->regs[2]) {
|
if (tmp != env->regs[2]) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
} while (env->regs[3] != 0);
|
||||||
env->psw_z = env->regs[3];
|
env->psw_z = env->regs[3];
|
||||||
env->psw_c = (tmp <= env->regs[2]);
|
env->psw_c = (tmp <= env->regs[2]);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user