File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -114,7 +114,10 @@ void CheckVaarg::va_list_usage()
114114 tok = tok->linkAt (1 );
115115 } else if (Token::Match (tok, " throw|return" ))
116116 exitOnEndOfStatement = true ;
117- else if (!open && tok->varId () == var->declarationId ())
117+ else if (_tokenizer->isCPP () && tok->str () == " try" ) {
118+ open = false ;
119+ break ;
120+ } else if (!open && tok->varId () == var->declarationId ())
118121 va_list_usedBeforeStartedError (tok, var->name ());
119122 else if (exitOnEndOfStatement && tok->str () == " ;" )
120123 break ;
Original file line number Diff line number Diff line change @@ -116,6 +116,18 @@ class TestVaarg : public TestFixture {
116116 " }" );
117117 ASSERT_EQUALS (" " , errout.str ());
118118
119+ // #6186
120+ check (" void Format(char* szFormat, char (*szBuffer)[_Size], ...) {\n "
121+ " va_list arg_ptr;\n "
122+ " va_start(arg_ptr, szBuffer);\n "
123+ " try {\n "
124+ " throw sth;\n "
125+ " } catch(...) {\n "
126+ " va_end(arg_ptr);\n "
127+ " }\n "
128+ " }" );
129+ ASSERT_EQUALS (" " , errout.str ());
130+
119131 check (" void Format(char* szFormat, char (*szBuffer)[_Size], ...) {\n "
120132 " va_list arg_ptr;\n "
121133 " va_start(arg_ptr, szBuffer);\n "
You can’t perform that action at this time.
0 commit comments