parent
6fcf11b831
commit
b745d9ad6e
|
@ -8146,7 +8146,7 @@ static T* skipCPPOrAlignAttribute(T * tok)
|
||||||
|
|
||||||
static bool isNonMacro(const Token* tok)
|
static bool isNonMacro(const Token* tok)
|
||||||
{
|
{
|
||||||
if (tok->isKeyword())
|
if (tok->isKeyword() || tok->isStandardType())
|
||||||
return true;
|
return true;
|
||||||
if (cAlternativeTokens.count(tok->str()) > 0)
|
if (cAlternativeTokens.count(tok->str()) > 0)
|
||||||
return true;
|
return true;
|
||||||
|
@ -8272,7 +8272,7 @@ void Tokenizer::reportUnknownMacros() const
|
||||||
for (const Token* tok = tokens(); tok; tok = tok->next()) {
|
for (const Token* tok = tokens(); tok; tok = tok->next()) {
|
||||||
if (!Token::Match(tok, "%name% ("))
|
if (!Token::Match(tok, "%name% ("))
|
||||||
continue;
|
continue;
|
||||||
if (isNonMacro(tok))
|
if (isNonMacro(tok) && !tok->isStandardType())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const Token* endTok = tok->linkAt(1);
|
const Token* endTok = tok->linkAt(1);
|
||||||
|
@ -8288,7 +8288,7 @@ void Tokenizer::reportUnknownMacros() const
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
unknownMacroError(tok);
|
unknownMacroError(tok->isStandardType() ? tok2 : tok);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7043,6 +7043,10 @@ private:
|
||||||
ASSERT_THROW_EQUALS(tokenizeAndStringify("void f() { MACRO(x(), y(), \"abc\", z(); ok = true); }\n"), // #12006
|
ASSERT_THROW_EQUALS(tokenizeAndStringify("void f() { MACRO(x(), y(), \"abc\", z(); ok = true); }\n"), // #12006
|
||||||
InternalError,
|
InternalError,
|
||||||
"There is an unknown macro here somewhere. Configuration is required. If MACRO is a macro then please configure it.");
|
"There is an unknown macro here somewhere. Configuration is required. If MACRO is a macro then please configure it.");
|
||||||
|
|
||||||
|
ASSERT_THROW_EQUALS(tokenizeAndStringify("int (*f) MACRO((void *));\n"), // #12010
|
||||||
|
InternalError,
|
||||||
|
"There is an unknown macro here somewhere. Configuration is required. If MACRO is a macro then please configure it.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue