@@ -2196,7 +2196,7 @@ class TestNullPointer : public TestFixture {
21962196 void functioncalllibrary () {
21972197 Settings settings1;
21982198 Tokenizer tokenizer (&settings1,this );
2199- std::istringstream code (" void f() { int a,b; x(a,b); }" );
2199+ std::istringstream code (" void f() { int a,b,c ; x(a,b,c ); }" );
22002200 tokenizer.tokenize (code," test.c" );
22012201 const Token *xtok = Token::findsimplematch (tokenizer.tokens (), " x" );
22022202
@@ -2206,6 +2206,7 @@ class TestNullPointer : public TestFixture {
22062206 Library::ArgumentChecks arg;
22072207 library.argumentChecks [" x" ][1 ] = arg;
22082208 library.argumentChecks [" x" ][2 ] = arg;
2209+ library.argumentChecks [" x" ][3 ] = arg;
22092210
22102211 std::list<const Token *> null, uninit;
22112212 CheckNullPointer::parseFunctionCall (*xtok, null, &library, 0U );
@@ -2220,6 +2221,7 @@ class TestNullPointer : public TestFixture {
22202221 Library::ArgumentChecks arg;
22212222 library.argumentChecks [" x" ][1 ] = arg;
22222223 library.argumentChecks [" x" ][2 ] = arg;
2224+ library.argumentChecks [" x" ][3 ] = arg;
22232225 library.argumentChecks [" x" ][1 ].notnull = true ;
22242226
22252227 std::list<const Token *> null,uninit;
@@ -2236,6 +2238,7 @@ class TestNullPointer : public TestFixture {
22362238 Library::ArgumentChecks arg;
22372239 library.argumentChecks [" x" ][1 ] = arg;
22382240 library.argumentChecks [" x" ][2 ] = arg;
2241+ library.argumentChecks [" x" ][3 ] = arg;
22392242 library.argumentChecks [" x" ][2 ].notuninit = true ;
22402243
22412244 std::list<const Token *> null,uninit;
@@ -2245,6 +2248,23 @@ class TestNullPointer : public TestFixture {
22452248 ASSERT_EQUALS (1U , uninit.size ());
22462249 ASSERT_EQUALS (" b" , uninit.front ()->str ());
22472250 }
2251+
2252+ // for 3rd parameter uninit data is not ok..
2253+ {
2254+ Library library;
2255+ Library::ArgumentChecks arg;
2256+ library.argumentChecks [" x" ][1 ] = arg;
2257+ library.argumentChecks [" x" ][2 ] = arg;
2258+ library.argumentChecks [" x" ][3 ] = arg;
2259+ library.argumentChecks [" x" ][3 ].notuninit = true ;
2260+
2261+ std::list<const Token *> null,uninit;
2262+ CheckNullPointer::parseFunctionCall (*xtok, null, &library, 0U );
2263+ CheckNullPointer::parseFunctionCall (*xtok, uninit, &library, 1U );
2264+ ASSERT_EQUALS (0U , null.size ());
2265+ ASSERT_EQUALS (1U , uninit.size ());
2266+ ASSERT_EQUALS (" c" , uninit.front ()->str ());
2267+ }
22482268 }
22492269
22502270 void functioncallDefaultArguments () {
0 commit comments