Tokenizer: Added MAXTIME so cppcheck can be compiled with a hard max time. Will be used for the daca2.

This commit is contained in:
Daniel Marjamäki 2013-11-02 17:31:14 +01:00
parent e948f4c9ee
commit f0a621a952
2 changed files with 21 additions and 0 deletions

View File

@ -43,6 +43,9 @@ Tokenizer::Tokenizer() :
_varId(0),
_codeWithTemplates(false), //is there any templates?
m_timerResults(NULL)
#ifdef MAXTIME
,maxtime(std::time(0) + MAXTIME)
#endif
{
}
@ -54,6 +57,9 @@ Tokenizer::Tokenizer(const Settings *settings, ErrorLogger *errorLogger) :
_varId(0),
_codeWithTemplates(false), //is there any templates?
m_timerResults(NULL)
#ifdef MAXTIME
,maxtime(std::time(0) + MAXTIME)
#endif
{
// make sure settings are specified
assert(_settings);
@ -514,6 +520,11 @@ void Tokenizer::simplifyTypedef()
if (_settings && _settings->terminated())
return;
#ifdef MAXTIME
if (std::time(0) > maxtime)
return;
#endif
if (goback) {
//jump back once, see the comment at the end of the function
goback = false;
@ -6458,6 +6469,11 @@ bool Tokenizer::simplifyKnownVariablesSimplify(Token **tok2, Token *tok3, unsign
if (_errorLogger && !list.getFiles().empty())
_errorLogger->reportProgress(list.getFiles()[0], "Tokenize (simplifyKnownVariables)", tok3->progressValue());
#ifdef MAXTIME
if (std::time(0) > maxtime)
return false;
#endif
bool ret = false;
Token* bailOutFromLoop = 0;

View File

@ -28,6 +28,7 @@
#include <string>
#include <map>
#include <list>
#include <ctime>
class Settings;
class SymbolDatabase;
@ -806,6 +807,10 @@ private:
* TimerResults
*/
TimerResults *m_timerResults;
#ifdef MAXTIME
/** Tokenizer maxtime */
std::time_t maxtime;
#endif
};
/// @}