Workaround 'tainted int used as loop bound' static analysis tool warning
authorIvan Maidanski <ivmai@mail.ru>
Fri, 21 Oct 2016 18:57:15 +0000 (21:57 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 21 Oct 2016 18:57:15 +0000 (21:57 +0300)
No need to check upper bound of n here, so a dummy check is added.

* tests/test_cpp.cc (main) [LINT2]: Check upper bound of n local
variable (the check is actually dummy).
* tests/test_cpp.cc (main): Reformat code (which handles n variable).

tests/test_cpp.cc

index cec6989..17fa41e 100644 (file)
@@ -251,9 +251,16 @@ void* Undisguise( GC_word i ) {
       *xptr = x;
       x = 0;
 #   endif
-    if (argc != 2 || (0 >= (n = atoi( argv[ 1 ] )))) {
-        GC_printf( "usage: test_cpp number-of-iterations\nAssuming 10 iters\n" );
-        n = 10;}
+    if (argc != 2
+        || (n = atoi(argv[1])) <= 0
+#       ifdef LINT2
+          || n >= (((unsigned)-1) >> 1) - 1
+#       endif
+       ) {
+      GC_printf("usage: test_cpp number-of-iterations\n"
+                "Assuming 10 iters\n");
+      n = 10;
+    }
 
     for (iters = 1; iters <= n; iters++) {
         GC_printf( "Starting iteration %d\n", iters );