]> granicus.if.org Git - gc/commitdiff
Workaround 'nl-result_buf is out of bounds' cppcheck false positive
authorIvan Maidanski <ivmai@mail.ru>
Wed, 19 Dec 2018 23:14:16 +0000 (02:14 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Wed, 19 Dec 2018 23:14:16 +0000 (02:14 +0300)
* os_dep.c [NEED_CALLINFO && LINUX && !SMALL_CONFIG] (GC_print_callers):
Replace nl-result_buf to (word)nl-COVERT_DATAFLOW(result_buf).

os_dep.c

index f71469c4d11accafe6523487a2100a90b8c1c652..25d893abe36cf00cbe2d5c36efd28e44e09a37cf 100644 (file)
--- a/os_dep.c
+++ b/os_dep.c
@@ -4789,8 +4789,10 @@ GC_INNER void GC_print_callers(struct callinfo info[NFRAMES])
                     *nl = ':';
                   }
                   if (strncmp(result_buf, "main",
-                              nl != NULL ? (size_t)(nl - result_buf)
-                                         : result_len) == 0) {
+                              nl != NULL
+                                ? (size_t)((word)nl /* a cppcheck workaround */
+                                           - COVERT_DATAFLOW(result_buf))
+                                : result_len) == 0) {
                     stop = TRUE;
                   }
                 }