From 1868a901034d3a606dd529dd9b9cab3433802bad Mon Sep 17 00:00:00 2001 From: Ivan Maidanski Date: Fri, 21 Oct 2016 21:57:15 +0300 Subject: [PATCH] Workaround 'tainted int used as loop bound' static analysis tool warning 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 | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/test_cpp.cc b/tests/test_cpp.cc index cec6989..17fa41e 100644 --- a/tests/test_cpp.cc +++ b/tests/test_cpp.cc @@ -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 ); -- 2.7.4