Skip to content

Assertion failure when doing cursor info on externalMacro at end of file #66924

Open
@ahoppen

Description

@ahoppen

The following new test case causes an assertion failure

// IMPORTANT: Don’t add a newline at the end of this file
// RUN: %sourcekitd-test -req=cursor -pos=%(line + 1):23 %s -- %s
macro powerAssert() = #externalMacro

The following test case fails with the same stack trace

// IMPORTANT: Don’t add a newline at the end of this file
// RUN: %sourcekitd-test -req=cursor -pos=%(line + 1):38 %s -- %s
macro powerAssert() = #externalMacro(module

Stack trace:

0   libsystem_kernel.dylib        	       0x18fb9b11c __pthread_kill + 8
1   libsystem_pthread.dylib       	       0x18fbd2cc0 pthread_kill + 288
2   libsystem_c.dylib             	       0x18fae2b14 __abort + 128
3   libsystem_c.dylib             	       0x18fae2a94 abort + 192
4   libsystem_c.dylib             	       0x18fae1da4 __assert_rtn + 284
5   libsourcekitdInProc.dylib     	       0x117663fb8 swift::CharSourceRange::CharSourceRange(swift::SourceManager const&, swift::SourceLoc, swift::SourceLoc) (.cold.1) + 36
6   libsourcekitdInProc.dylib     	       0x1161d8898 swift::CharSourceRange::CharSourceRange(swift::SourceManager const&, swift::SourceLoc, swift::SourceLoc) + 88
7   libsourcekitdInProc.dylib     	       0x1129bacbc swift::InFlightDiagnostic::highlightChars(swift::SourceLoc, swift::SourceLoc) + 72
8   libsourcekitdInProc.dylib     	       0x11274c3b8 specialized SourceManager.diagnoseSingle<A>(message:severity:node:position:highlights:fixItChanges:) + 892
9   libsourcekitdInProc.dylib     	       0x11274ccb4 SourceManager.diagnose(diagnostic:messageSuffix:) + 700
10  libsourcekitdInProc.dylib     	       0x112759284 checkMacroDefinition(diagEnginePtr:sourceFilePtr:macroLocationPtr:externalMacroPointer:externalMacroLength:replacementsPtr:numReplacementsPtr:) + 3932
11  libsourcekitdInProc.dylib     	       0x112471c10 swift::MacroDefinitionRequest::evaluate(swift::Evaluator&, swift::MacroDecl*) const + 164
12  libsourcekitdInProc.dylib     	       0x1129a7e9c llvm::Expected<swift::MacroDefinitionRequest::OutputType> swift::Evaluator::getResultUncached<swift::MacroDefinitionRequest>(swift::MacroDefinitionRequest const&) + 284
13  libsourcekitdInProc.dylib     	       0x1129a7c00 llvm::Expected<swift::MacroDefinitionRequest::OutputType> swift::Evaluator::getResultCached<swift::MacroDefinitionRequest, (void*)0>(swift::MacroDefinitionRequest const&) + 396
14  libsourcekitdInProc.dylib     	       0x1128d4e9c swift::MacroDefinitionRequest::OutputType swift::evaluateOrDefault<swift::MacroDefinitionRequest>(swift::Evaluator&, swift::MacroDefinitionRequest, swift::MacroDefinitionRequest::OutputType) + 40
15  libsourcekitdInProc.dylib     	       0x1128d4e64 swift::MacroDecl::getDefinition() const + 100
16  libsourcekitdInProc.dylib     	       0x112443be8 (anonymous namespace)::DeclChecker::visit(swift::Decl*) + 2764
17  libsourcekitdInProc.dylib     	       0x112443104 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 148
18  libsourcekitdInProc.dylib     	       0x112500f2c swift::TypeCheckSourceFileRequest::evaluate(swift::Evaluator&, swift::SourceFile*) const + 164
19  libsourcekitdInProc.dylib     	       0x112503088 llvm::Expected<swift::TypeCheckSourceFileRequest::OutputType> swift::Evaluator::getResultUncached<swift::TypeCheckSourceFileRequest>(swift::TypeCheckSourceFileRequest const&) + 280
20  libsourcekitdInProc.dylib     	       0x112502ea0 llvm::Expected<swift::TypeCheckSourceFileRequest::OutputType> swift::Evaluator::getResultCached<swift::TypeCheckSourceFileRequest, (void*)0>(swift::TypeCheckSourceFileRequest const&) + 68
21  libsourcekitdInProc.dylib     	       0x112500dbc swift::TypeCheckSourceFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckSourceFileRequest>(swift::Evaluator&, swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType) + 28
22  libsourcekitdInProc.dylib     	       0x111656c34 bool llvm::function_ref<bool (swift::SourceFile&)>::callback_fn<swift::CompilerInstance::performSema()::$_7>(long, swift::SourceFile&) + 16
23  libsourcekitdInProc.dylib     	       0x11164fe0c swift::CompilerInstance::forEachFileToTypeCheck(llvm::function_ref<bool (swift::SourceFile&)>) + 76
24  libsourcekitdInProc.dylib     	       0x11164fda0 swift::CompilerInstance::performSema() + 76
25  libsourcekitdInProc.dylib     	       0x111459854 void SourceKit::WorkQueue::DispatchData::callAndDelete<(anonymous namespace)::ASTBuildOperation::schedule(SourceKit::WorkQueue)::$_9>(void*) + 2804
26  libdispatch.dylib             	       0x18fa25910 _dispatch_client_callout + 20
27  libdispatch.dylib             	       0x18fa29358 _dispatch_block_invoke_direct + 284
28  libsourcekitdInProc.dylib     	       0x1161bf9a8 executeBlock(void*) + 28
29  libsourcekitdInProc.dylib     	       0x1161bf9d8 void* llvm::thread::ThreadProxy<std::__1::tuple<void (*)(void*), void*>>(void*) + 24
30  libsystem_pthread.dylib       	       0x18fbd3034 _pthread_start + 136
31  libsystem_pthread.dylib       	       0x18fbcde3c thread_start + 8

rdar://111328832

Metadata

Metadata

Assignees

No one assigned

    Labels

    #externalMacroFeature → swift macro: The built-in `#externalMacro` macroassertion failureBug → crash: An assertion failurecrashBug: A crash, i.e., an abnormal termination of softwarecursor infoArea → source tooling: cursor infodeclarationsFeature: declarationsfound by stress testerFlag: An issue found by the SourceKit stress testersource toolingArea: IDE support, SourceKit, and other source toolingswift 5.9swift macroFeature → declarations: Swift `macro` declarations

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions