-
Bug
-
Resolution: Done
-
Not Evaluated
-
Qt Creator 4.15.0
-
None
-
Kubuntu 21.04
-
-
0cef9a8554437a7ed7033198dffc5baa647d67e4
While scanning tests, *QtCreator crashes* in this file: `src/plugins/autotest/gtest/gtestvisitors.cpp` at this line:
```
const CPlusPlus::Argument *testCaseNameArg = ast->symbol->argumentAt(1)->asArgument();
```
Debugger says that:
- `ast->symbol->argumentAt(1)` is `0x0`.
- and `ast->symbol->argumentCount()` is 1.
It crashes on this [chromium test](https://source.chromium.org/chromium/chromium/src/+/main:media/gpu/vaapi/vp9_temporal_layers_unittest.cc;l=104?q=media%2Fgpu%2Fvaapi%2Fvp9_temporal_layers_unittest.cc&ss=chromium%2Fchromium%2Fsrc):
```
TEST_P(VP9TemporalLayersTest, )
const size_t num_temporal_layers = GetParam();
VP9TemporalLayers temporal_layers(num_temporal_layers);
EXPECT_EQ(temporal_layers.num_layers(), num_temporal_layers);
```
It looks like regression was introduced in 5d5ff574953822043619c23f9b251016ac3357fe, specifically, this check was removed: ` || ast->symbol->argumentCount() != 2`
Backtrace:
```
1 Autotest::Internal::GTestVisitor::visit gtestvisitors.cpp 98 0x7f45853b1a67
2 CPlusPlus::FunctionDefinitionAST::accept0 ASTVisit.cpp 495 0x7f458749e57c
3 CPlusPlus::AST::accept AST.cpp 51 0x7f458746e658
4 CPlusPlus::AST::accept AST.h 135 0x7f45874a1679
5 CPlusPlus::AST::accept<CPlusPlus::DeclarationAST *> AST.h 141 0x7f45874a198f
6 CPlusPlus::LinkageBodyAST::accept0 ASTVisit.cpp 567 0x7f458749ea0f
7 CPlusPlus::AST::accept AST.cpp 51 0x7f458746e658
8 CPlusPlus::AST::accept AST.h 135 0x7f45874a1679
9 CPlusPlus::NamespaceAST::accept0 ASTVisit.cpp 657 0x7f458749ef1e
10 CPlusPlus::AST::accept AST.cpp 51 0x7f458746e658
11 CPlusPlus::AST::accept AST.h 135 0x7f45874a1679
12 CPlusPlus::AST::accept<CPlusPlus::DeclarationAST *> AST.h 141 0x7f45874a198f
13 CPlusPlus::TranslationUnitAST::accept0 ASTVisit.cpp 960 0x7f45874a001f
14 CPlusPlus::AST::accept AST.cpp 51 0x7f458746e658
15 CPlusPlus::AST::accept AST.h 135 0x7f45874a1679
16 CPlusPlus::ASTVisitor::accept ASTVisitor.cpp 36 0x7f45874a1db3
17 Autotest::Internal::GTestParser::processDocument gtestparser.cpp 104 0x7f45853a2a3a
18 Autotest::Internal::parseFileForTests testcodeparser.cpp 291 0x7f45853fb878
19 Autotest::Internal::TestCodeParser::<lambda(QFutureInterface<QSharedPointer<Autotest::TestParseResult>>&, const QString&)>::operator()(QFutureInterface<QSharedPointer<Autotest::TestParseResult>> &, const QString &) const testcodeparser.cpp 364 0x7f45853fb9ac
20 Utils::Internal::runAsyncQFutureInterfaceDispatch<QSharedPointer<Autotest::TestParseResult>, const Autotest::Internal::TestCodeParser::scanForTests(const QStringList&, const QList<Autotest::ITestParser *>&)::<lambda(QFutureInterface<QSharedPointer<Autotest::TestParseResult>>&, const QString&)>&, std::reference_wrapper<QString>>(std::true_type, QFutureInterface<QSharedPointer<Autotest::TestParseResult>>, const Autotest::Internal::TestCodeParser::<lambda(QFutureInterface<QSharedPointer<Autotest::TestParseResult>>&, const QString&)> &) runextensions.h 257 0x7f4585403fd6
... <More>
```
Variables:
Locals
ast @0x7fdfd8040b78 CPlusPlus::FunctionDefinitionAST
[CPlusPlus::DeclarationAST] @0x7fdfd8040b78 CPlusPlus::DeclarationAST
ctor_initializer 0x0 CPlusPlus::CtorInitializerAST*
decl_specifier_list 0x0 CPlusPlus::SpecifierListAST*
declarator @0x7fdfd80409b0 CPlusPlus::DeclaratorAST
function_body @0x7fdfd8040bb0 CPlusPlus::CompoundStatementAST
qt_invokable_token 0 int
symbol @0x7fdfd803db60 CPlusPlus::Function
[CPlusPlus::Scope] @0x7fdfd803db60 CPlusPlus::Scope
[CPlusPlus::Symbol] "TEST_P" CPlusPlus::Symbol
[vptr] _vptr.Symbol
_name "TEST_P" CPlusPlus::Identifier
_enclosingScope @0x7fdfd8101ed0 CPlusPlus::Namespace
_next 0x0 CPlusPlus::Symbol*
_fileId "/home/dimanne/devel/chromium/src/media/gpu/vaapi/vp9_temporal_layers_unittest.cc" CPlusPlus::StringLiteral
_sourceLocation 458 int
_hashCode 92965440 unsigned int
_storage 0 int
_visibility 0 int
_index 3 int
_line 104 int
_column 1 int
_isGenerated 0 bool : 1
_isDeprecated 0 bool : 1
_isUnavailable 0 bool : 1
_endOffset 4576 int
_members @0x7fdfd819e4f0 CPlusPlus::SymbolTable
_allocatedSymbols 4 int
_hash @0x7fdfd80dca60 CPlusPlus::Block
[CPlusPlus::Scope] @0x7fdfd83342a0 CPlusPlus::Scope
_hashSize 4 int
_owner @0x7fdfd803db60 CPlusPlus::Function
[CPlusPlus::Scope] @0x7fdfd803db60 CPlusPlus::Scope
[CPlusPlus::Type] @0x7fdfd803dbb8 CPlusPlus::Type
#1 @0x7fdfd803dbd8 union {...}
_exceptionSpecification 0x0 CPlusPlus::StringLiteral*
_returnType @0x7fdfd803dbc0 CPlusPlus::FullySpecifiedType
_symbolCount 1 int
_symbols @0x7fdfd80ab3f0 CPlusPlus::Argument
[CPlusPlus::Symbol] "<null>" CPlusPlus::Symbol
_initializer 0x0 CPlusPlus::StringLiteral*
_type "VP9TemporalLayersTest" CPlusPlus::FullySpecifiedType
_startOffset 3371 int
[CPlusPlus::Type] @0x7fdfd803dbb8 CPlusPlus::Type
[vptr] _vptr.Type
#1 @0x7fdfd803dbd8 union {...}
_exceptionSpecification 0x0 CPlusPlus::StringLiteral*
_returnType @0x7fdfd803dbc0 CPlusPlus::FullySpecifiedType
_type @0x7fe264da63b8 CPlusPlus::UndefinedType
[CPlusPlus::Type] @0x7fe264da63b8 CPlusPlus::Type
#1 @0x7fdfd803dbc8 union {...}
_flags 0 unsigned int
f @0x7fdfd803dbc8 CPlusPlus::FullySpecifiedType::Flags
column 1689892470 int
disabled 127 bool
disabledCase 18 bool
disabledPrefix "DISABLED_" QString
id @0x7fdfd8040998 CPlusPlus::DeclaratorIdAST
line 32738 int
locationAndType @0x7fe2127fb810 Autotest::Internal::GTestCodeLocationAndType
namespaces "media::" QString
prettyName "TEST_P" QString
spec @0x7fe2127fb7f0 Autotest::Internal::GTestCaseSpec
testCaseName "" QString
testCaseNameArg @0x7fe2127fb7e0 CPlusPlus::Argument
testSuiteName "" QString
testSuiteNameArg @0x7fdfd81aa4b0 CPlusPlus::Argument
this @0x7fe2127fbb10 Autotest::Internal::GTestVisitor
token 32738 unsigned int
Inspector
Expressions
Return Value
Tooltip
Logs:
```
qtc.cpptools.indexer: Indexing 108998 of 108999 : "/home/dimanne/devel/chromium/src/out/IDE/gen/third_party/blink/public/mojom/background_fetch/background_fetch.mojom-test-utils.h"
qtc.cpptools.indexer: Indexing 108999 of 108999 : "/home/dimanne/devel/chromium/src/third_party/webrtc/modules/audio_coding/neteq/buffer_level_filter.h"
qtc.cpptools.indexer: Indexing finished.
qtc.autotest.testcodeparser: setState( 0 ), currentState: 0
qtc.autotest.testcodeparser: adding singleShot
qtc.autotest.testcodeparser: calling scanForTests (updateTestTree)
qtc.autotest.testcodeparser: setting state to FullParse (scanForTests)
qtc.autotest.testcodeparser: "21:34:22.065" StartParsing
```
- is duplicated by
-
QTCREATORBUG-26040 Crash when editing test_name of Google Test
-
- Closed
-