| 317 | #define compareVaridsForVariable(...) compareVaridsForVariable_(__FILE__, __LINE__, __VA_ARGS__) |
| 318 | template<size_t size> |
| 319 | std::string compareVaridsForVariable_(const char* file, int line, const char (&code)[size], const char varname[]) { |
| 320 | SimpleTokenizer tokenizer(settings, *this); |
| 321 | ASSERT_LOC((tokenizer.tokenize)(code), file, line); |
| 322 | |
| 323 | unsigned int varid = ~0U; |
| 324 | for (const Token *tok = tokenizer.tokens(); tok; tok = tok->next()) { |
| 325 | if (tok->str() == varname) { |
| 326 | if (varid == ~0U) |
| 327 | varid = tok->varId(); |
| 328 | else if (varid != tok->varId()) |
| 329 | return std::string("Variable ") + varname + " has different varids:\n" + tokenizer.tokens()->stringifyList(true,true,true,true,false); |
| 330 | } |
| 331 | } |
| 332 | |
| 333 | return "same varid"; |
| 334 | } |
| 335 | |
| 336 | void varid1() { |
| 337 | { |
nothing calls this directly
no test coverage detected