Details
-
Bug
-
Resolution: Done
-
Not Evaluated
-
Qt Creator 4.15.0
-
None
-
Kubuntu 21.04
-
-
0cef9a8554437a7ed7033198dffc5baa647d67e4
Description
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
```
Attachments
Issue Links
- is duplicated by
-
QTCREATORBUG-26040 Crash when editing test_name of Google Test
-
- Closed
-