Skip to content

Commit 4fcd324

Browse files
committed
Improved testing of std.cfg regarding <arg nr=any> configured functions and added more test cases.
1 parent c64f9cf commit 4fcd324

3 files changed

Lines changed: 171 additions & 46 deletions

File tree

cfg/std.cfg

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -972,7 +972,7 @@
972972
<formatstr/>
973973
<not-uninit/>
974974
</arg>
975-
<arg nr="any">
975+
<arg nr="3">
976976
<not-uninit/>
977977
</arg>
978978
</function>
@@ -989,7 +989,7 @@
989989
<formatstr/>
990990
<not-uninit/>
991991
</arg>
992-
<arg nr="any">
992+
<arg nr="3">
993993
<not-uninit/>
994994
</arg>
995995
</function>
@@ -2567,7 +2567,7 @@
25672567
<formatstr/>
25682568
<not-uninit/>
25692569
</arg>
2570-
<arg nr="any">
2570+
<arg nr="2">
25712571
<not-uninit/>
25722572
</arg>
25732573
</function>
@@ -2580,7 +2580,7 @@
25802580
<formatstr/>
25812581
<not-uninit/>
25822582
</arg>
2583-
<arg nr="any">
2583+
<arg nr="2">
25842584
<not-uninit/>
25852585
</arg>
25862586
</function>
@@ -3673,6 +3673,7 @@
36733673
<noreturn>false</noreturn>
36743674
<leak-ignore/>
36753675
<arg nr="1">
3676+
<not-uninit/>
36763677
<minsize type="strlen" arg="2"/>
36773678
</arg>
36783679
<formatstr/>
@@ -3745,7 +3746,10 @@
37453746
<function name="snprintf,std::snprintf">
37463747
<noreturn>false</noreturn>
37473748
<leak-ignore/>
3748-
<arg nr="1"/>
3749+
<arg nr="1">
3750+
<not-uninit/>
3751+
<minsize type="argvalue" arg="2"/>
3752+
</arg>
37493753
<arg nr="2">
37503754
<not-uninit/>
37513755
</arg>

test/cfg/std.c

Lines changed: 88 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ void bufferAccessOutOfBounds(void)
3535
// cppcheck-suppress redundantCopy
3636
snprintf(a, 5, "abcde%i", 1);
3737
// cppcheck-suppress redundantCopy
38-
snprintf(a, 6, "abcde%i", 1); //TODO: cppcheck-suppress bufferAccessOutOfBounds
38+
// cppcheck-suppress bufferAccessOutOfBounds
39+
snprintf(a, 6, "abcde%i", 1);
3940
// cppcheck-suppress redundantCopy
4041
strcpy(a,"abcd");
4142
// cppcheck-suppress bufferAccessOutOfBounds
@@ -1261,26 +1262,45 @@ void uninitar_fopen(void)
12611262
fclose(fp);
12621263
}
12631264

1264-
void uninitar_fprintf(void)
1265+
void uninitar_fprintf(FILE *Stream, char *Format, int Argument)
12651266
{
12661267
FILE *stream;
12671268
char *format;
12681269
int argument;
12691270
// cppcheck-suppress uninitvar
12701271
(void)fprintf(stream, format, argument);
1272+
// cppcheck-suppress uninitvar
1273+
(void)fprintf(stream, Format, Argument);
1274+
// cppcheck-suppress uninitvar
1275+
(void)fprintf(Stream, format, Argument);
1276+
// cppcheck-suppress uninitvar
1277+
(void)fprintf(Stream, Format, argument);
1278+
1279+
// no warning is expected
1280+
(void)fprintf(Stream, Format, Argument);
12711281
}
12721282

1273-
void uninitar_vfprintf(void)
1283+
void uninitar_vfprintf(FILE *Stream, const char *Format, va_list Arg)
12741284
{
12751285
FILE *stream;
12761286
char *format;
12771287
va_list arg;
12781288
// cppcheck-suppress va_list_usedBeforeStarted
12791289
// cppcheck-suppress uninitvar
12801290
(void)vfprintf(stream, format, arg);
1291+
// cppcheck-suppress uninitvar
1292+
(void)vfprintf(stream, Format, Arg);
1293+
// cppcheck-suppress uninitvar
1294+
(void)vfprintf(Stream, format, Arg);
1295+
// cppcheck-suppress va_list_usedBeforeStarted
1296+
// cppcheck-suppress uninitvar
1297+
(void)vfprintf(Stream, Format, arg);
1298+
1299+
// no warning is expected
1300+
(void)vfprintf(Stream, Format, Arg);
12811301
}
12821302

1283-
void uninitar_vfwprintf(FILE *s, wchar_t *f, va_list a)
1303+
void uninitar_vfwprintf(FILE *Stream, wchar_t *Format, va_list Arg)
12841304
{
12851305
FILE *stream;
12861306
wchar_t *format;
@@ -1289,11 +1309,15 @@ void uninitar_vfwprintf(FILE *s, wchar_t *f, va_list a)
12891309
// cppcheck-suppress uninitvar
12901310
(void)vfwprintf(stream, format, arg);
12911311
// cppcheck-suppress uninitvar
1292-
(void)vfwprintf(s, format, a);
1312+
(void)vfwprintf(stream, Format, Arg);
12931313
// cppcheck-suppress uninitvar
1294-
(void)vfwprintf(stream, f, a);
1314+
(void)vfwprintf(Stream, format, Arg);
1315+
// cppcheck-suppress va_list_usedBeforeStarted
1316+
// cppcheck-suppress uninitvar
1317+
(void)vfwprintf(Stream, Format, arg);
1318+
12951319
// no warning is expected
1296-
(void)vfwprintf(s, f, a);
1320+
(void)vfwprintf(Stream, Format, Arg);
12971321
}
12981322

12991323
void uninitvar_fputc(void)
@@ -2561,34 +2585,57 @@ void uninitvar_remquo(void)
25612585
(void)remquol(ld1,ld2,i3);
25622586
}
25632587

2564-
void uninivar_printf(void)
2588+
void uninivar_printf(char *Format, int Argument)
25652589
{
25662590
char * format;
2567-
int i;
2591+
int argument;
25682592
// no warning is expected
25692593
(void)printf("x");
25702594
// cppcheck-suppress uninitvar
2571-
(void)printf(format,i);
2595+
(void)printf(format,argument);
2596+
// cppcheck-suppress uninitvar
2597+
(void)printf(Format,argument);
2598+
// cppcheck-suppress uninitvar
2599+
(void)printf(format,Argument);
25722600
// cppcheck-suppress uninitvar
25732601
(void)printf(format,1);
2602+
2603+
// no warning is expected
2604+
(void)printf(Format,Argument);
25742605
}
25752606

2576-
void uninivar_vprintf(void)
2607+
void uninivar_vprintf(char *Format, va_list Arg)
25772608
{
25782609
char * format;
25792610
va_list arg;
25802611
// cppcheck-suppress va_list_usedBeforeStarted
25812612
// cppcheck-suppress uninitvar
25822613
(void)vprintf(format,arg);
2614+
// cppcheck-suppress va_list_usedBeforeStarted
2615+
// cppcheck-suppress uninitvar
2616+
(void)vprintf(Format,arg);
2617+
// cppcheck-suppress uninitvar
2618+
(void)vprintf(format,Arg);
2619+
2620+
// no warning is expected
2621+
(void)vprintf(Format,Arg);
25832622
}
25842623

2585-
void uninivar_vwprintf(void)
2624+
void uninivar_vwprintf(wchar_t *Format, va_list Arg)
25862625
{
25872626
wchar_t * format;
25882627
va_list arg;
25892628
// cppcheck-suppress va_list_usedBeforeStarted
25902629
// cppcheck-suppress uninitvar
25912630
(void)vwprintf(format,arg);
2631+
// cppcheck-suppress va_list_usedBeforeStarted
2632+
// cppcheck-suppress uninitvar
2633+
(void)vwprintf(Format,arg);
2634+
// cppcheck-suppress uninitvar
2635+
(void)vwprintf(format,Arg);
2636+
2637+
// no warning is expected
2638+
(void)vwprintf(Format,Arg);
25922639
}
25932640

25942641
void uninivar_bsearch(void)
@@ -3247,30 +3294,42 @@ void uninivar_wcstol(void)
32473294
(void)wcstoull(s,endp,base);
32483295
}
32493296

3250-
void uninitvar_wprintf(wchar_t *format, int input)
3297+
void uninitvar_wprintf(wchar_t *Format, int Argument)
32513298
{
3252-
const wchar_t *f;
3253-
int i;
3299+
const wchar_t *format;
3300+
int argument;
32543301
// cppcheck-suppress uninitvar
3255-
(void)wprintf(f,i);
3302+
(void)wprintf(format,argument);
32563303
// cppcheck-suppress uninitvar
3257-
(void)wprintf(f);
3304+
(void)wprintf(format);
32583305
// cppcheck-suppress uninitvar
3259-
(void)wprintf(f,input);
3306+
(void)wprintf(Format,argument);
32603307
// cppcheck-suppress uninitvar
3261-
(void)wprintf(format,i);
3308+
(void)wprintf(format,Argument);
32623309
// no warning is expected
3263-
(void)wprintf(format,input);
3264-
(void)wprintf(format);
3310+
(void)wprintf(Format,Argument);
3311+
(void)wprintf(Format);
32653312
}
32663313

3267-
void uninitvar_sprintf(void)
3314+
void uninitvar_sprintf(char *S, char *Format, int Argument)
32683315
{
32693316
char *s;
32703317
const char *format;
3271-
int i;
3318+
int argument;
3319+
// cppcheck-suppress uninitvar
3320+
(void)sprintf(s,format,argument);
3321+
// cppcheck-suppress redundantCopy
3322+
// cppcheck-suppress uninitvar
3323+
(void)sprintf(s,Format,Argument);
3324+
// cppcheck-suppress uninitvar
3325+
(void)sprintf(S,format,Argument);
3326+
// cppcheck-suppress redundantCopy
32723327
// cppcheck-suppress uninitvar
3273-
(void)sprintf(s,format,i);
3328+
(void)sprintf(S,Format,argument);
3329+
3330+
// no warning is expected for
3331+
// cppcheck-suppress redundantCopy
3332+
(void)sprintf(S,Format,Argument);
32743333
}
32753334

32763335
void uninitvar_swprintf(void)
@@ -3329,7 +3388,12 @@ void uninivar_snprintf(char *S, size_t N, char *Format, int Int)
33293388
// cppcheck-suppress uninitvar
33303389
(void)snprintf(S,N,Format,i); // i is uninitialized
33313390
// cppcheck-suppress redundantCopy
3391+
// cppcheck-suppress uninitvar
33323392
(void)snprintf(s,N,Format,Int);
3393+
3394+
// no warning is expected for
3395+
// cppcheck-suppress redundantCopy
3396+
(void)snprintf(S,N,Format,Int);
33333397
}
33343398

33353399
void uninivar_vsnprintf(void)

0 commit comments

Comments
 (0)