From: Ivan Maidanski Date: Fri, 21 Jul 2017 08:01:01 +0000 (+0300) Subject: Eliminate CSA warning of staticroot that can be a local variable (tests) X-Git-Tag: v8.0.0~630 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ce64b650ae08368f4ea8346108a21e728c04d131;p=gc Eliminate CSA warning of staticroot that can be a local variable (tests) * tests/staticrootstest.c (staticroot): Remove redundant initialization to zero; add comment. * tests/staticrootstest.c (init_staticroot): New function; move staticroot=libsrl_init() from main(); add comment. * tests/staticrootstest.c (main): Call init_staticroot(). --- diff --git a/tests/staticrootstest.c b/tests/staticrootstest.c index 34ce9b40..fc2b9b36 100644 --- a/tests/staticrootstest.c +++ b/tests/staticrootstest.c @@ -25,7 +25,7 @@ struct treenode *root[10] = { NULL }; /* be placed to .data section instead of .bss). */ struct treenode *root_nz[10] = { (void *)(GC_word)1 }; -static char *staticroot = 0; +static char *staticroot; /* intentionally static */ GC_TEST_IMPORT_API struct treenode * libsrl_mktree(int i); GC_TEST_IMPORT_API void * libsrl_init(void); @@ -33,6 +33,14 @@ GC_TEST_IMPORT_API struct treenode ** libsrl_getpelem(int i, int j); GC_TEST_IMPORT_API struct treenode ** libsrl_getpelem2(int i, int j); +void init_staticroot(void) +{ + /* Intentionally put staticroot initialization in a function other */ + /* than main to prevent CSA warning that staticroot variable can be */ + /* changed to be a local one). */ + staticroot = libsrl_init(); +} + int main(void) { int i, j; @@ -40,7 +48,7 @@ int main(void) # ifdef STATICROOTSLIB_INIT_IN_MAIN GC_INIT(); # endif - staticroot = libsrl_init(); + init_staticroot(); if (NULL == staticroot) { fprintf(stderr, "GC_malloc returned NULL\n"); return 2;