diff --git a/lib/tokenize.cpp b/lib/tokenize.cpp index 27dfe9ebadc..da90e2734f7 100644 --- a/lib/tokenize.cpp +++ b/lib/tokenize.cpp @@ -4871,6 +4871,8 @@ void Tokenizer::setVarIdPass1() mTemplateSimplifier->getUsedVariables(), variableMap.map(true), mTemplateVarIdUsage); + if (!tok3->next()) + syntaxError(tok3); } } diff --git a/test/cli/fuzz-crash/crash-1c67200986f8cd9788ccf3dbb764d49cb67819b1 b/test/cli/fuzz-crash/crash-1c67200986f8cd9788ccf3dbb764d49cb67819b1 new file mode 100644 index 00000000000..06055955e6b --- /dev/null +++ b/test/cli/fuzz-crash/crash-1c67200986f8cd9788ccf3dbb764d49cb67819b1 @@ -0,0 +1 @@ +e U U,i \ No newline at end of file diff --git a/test/testgarbage.cpp b/test/testgarbage.cpp index 2bfb1283587..21a15082bc1 100644 --- a/test/testgarbage.cpp +++ b/test/testgarbage.cpp @@ -258,6 +258,7 @@ class TestGarbage : public TestFixture { TEST_CASE(garbageCode227); TEST_CASE(garbageCode228); TEST_CASE(garbageCode229); + TEST_CASE(garbageCode230); TEST_CASE(garbageCodeFuzzerClientMode1); // test cases created with the fuzzer client, mode 1 @@ -1771,6 +1772,9 @@ class TestGarbage : public TestFixture { ASSERT_THROW_INTERNAL(checkCode("void f() {} [[maybe_unused]]"), SYNTAX); ASSERT_THROW_INTERNAL(checkCode("void f() {} [[unused]]"), SYNTAX); } + void garbageCode230() { // #14432 + ASSERT_THROW_INTERNAL(checkCode("e U U,i"), SYNTAX); + } void syntaxErrorFirstToken() {