Fix problems in the sim sources discovered by running the cppcheck static analysis...
authorNick Clifton <nickc@redhat.com>
Wed, 29 Apr 2015 15:02:02 +0000 (16:02 +0100)
committerNick Clifton <nickc@redhat.com>
Wed, 29 Apr 2015 15:02:02 +0000 (16:02 +0100)
erc32 PR 18273
* sis.c (main): Remove unreachable code.

m68hc11 * gencode.c (gen_fetch_operands): Remove unreachable code.

ppc * hw_htab.c (htab_map_binary): Fix overlap check.

common * sim-fpu.c (INLINE_SIM_FPU): Fix static analysis warning by
increasing parenthesis around casts to signed values.

sim/common/ChangeLog
sim/common/sim-fpu.c
sim/erc32/ChangeLog
sim/erc32/sis.c
sim/m68hc11/ChangeLog
sim/m68hc11/gencode.c
sim/ppc/ChangeLog
sim/ppc/hw_htab.c

index 3c4428f..ebf8618 100644 (file)
@@ -1,3 +1,10 @@
+2015-04-29  Nick Clifton  <nickc@redhat.com>
+
+       PR 18273
+       * sim-fpu.c (INLINE_SIM_FPU): Fix static analysis warning by
+       increasing parenthesis around casts to signed values.
+       
+
 2015-04-21  Mike Frysinger  <vapier@gentoo.org>
 
        * gennltvals.sh: Add mcore support.
index f3e7f96..b6d35d1 100644 (file)
@@ -1107,7 +1107,7 @@ sim_fpu_add (sim_fpu *f,
 
     /* sign? */
     f->class = sim_fpu_class_number;
-    if ((signed64) f->fraction >= 0)
+    if (((signed64) f->fraction) >= 0)
       f->sign = 0;
     else
       {
@@ -1261,7 +1261,7 @@ sim_fpu_sub (sim_fpu *f,
 
     /* sign? */
     f->class = sim_fpu_class_number;
-    if ((signed64) f->fraction >= 0)
+    if (((signed64) f->fraction) >= 0)
       f->sign = 0;
     else
       {
index 4f9b502..688dc64 100644 (file)
@@ -1,3 +1,8 @@
+2015-04-29  Nick Clifton  <nickc@redhat.com>
+
+       PR 18273
+       * sis.c (main): Remove unreachable code.
+
 2015-04-24  David Binderman  <dcb314@hotmail.com>
            Nick Clifton  <nickc@redhat.com>
 
index 92880e1..180d97e 100644 (file)
@@ -169,7 +169,7 @@ main(argc, argv)
     while (stat < argc) {
        if (argv[stat][0] == '-') {
            if (strcmp(argv[stat], "-v") == 0) {
-               sis_verbose = 1;
+               sis_verbose += 1;
            } else if (strcmp(argv[stat], "-c") == 0) {
                if ((stat + 1) < argc) {
                    copt = 1;
@@ -202,8 +202,6 @@ main(argc, argv)
 #endif
             } else if (strcmp(argv[stat], "-dumbio") == 0) {
                dumbio = 1;
-            } else if (strcmp(argv[stat], "-v") == 0) {
-               sis_verbose += 1;
            } else {
                printf("unknown option %s\n", argv[stat]);
                usage();
index 957abb5..f87aedf 100644 (file)
@@ -1,3 +1,8 @@
+2015-04-29  Nick Clifton  <nickc@redhat.com>
+
+       PR 18273
+       * gencode.c (gen_fetch_operands): Remove unreachable code.
+
 2015-04-18  Mike Frysinger  <vapier@gentoo.org>
 
        * sim-main.h (SIM_CPU): Delete.
index dd9aa5f..ffc285c 100644 (file)
@@ -1466,6 +1466,8 @@ gen_fetch_operands (FILE *fp, int col,
                     vars[cur_var], operand_size, operand_size);
              operands += 1;
            }
+#if 0 /* This code is never executed (see strncmp above), but it has not been
+        removed because it may be that there is a typo in strncmp test below.  */
          else if (strncmp (operands, "]", 1) == 0)
            {
              current_insn_size += 1;
@@ -1473,6 +1475,7 @@ gen_fetch_operands (FILE *fp, int col,
                     vars[cur_var], operand_size, operand_size);
              operands += 1;
            }
+#endif
          else
            {
              fatal_error (opcode, "Unknown operand");
index cd185ba..1297df1 100644 (file)
@@ -1,3 +1,8 @@
+2015-04-29  Nick Clifton  <nickc@redhat.com>
+
+       PR 18273
+       * hw_htab.c (htab_map_binary): Fix overlap check.
+
 2015-04-13  Mike Frysinger  <vapier@gentoo.org>
 
        * Makefile.in (version.o): Change to using create-version.sh from gdb.
index c49b323..cf275ff 100644 (file)
@@ -549,7 +549,7 @@ htab_map_binary(device *me,
   if ((sizes.text_base <= sizes.data_base
        && sizes.text_bound >= sizes.data_bound)
       || (sizes.data_base <= sizes.text_base
-         && sizes.data_bound >= sizes.data_bound)
+         && sizes.data_bound >= sizes.text_bound)
       || (sizes.text_bound > sizes.data_base
          && sizes.text_bound <= sizes.data_bound)
       || (sizes.text_base >= sizes.data_base