Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIL Value Ownership Error causes a compiler crash when building in Release mode for 6.0-series toolchains. #78923

Open
fibrechannelscsi opened this issue Jan 26, 2025 · 4 comments
Labels
assertion failure Bug → crash: An assertion failure bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler itself crash Bug: A crash, i.e., an abnormal termination of software optimized only Flag: An issue whose reproduction requires optimized compilation SIL ownership Area → compiler → SIL: SIL ownership SIL swift 6.0 verifier

Comments

@fibrechannelscsi
Copy link
Contributor

Description

The code below crashes the compiler when an attempt is made to build in Release mode. This only affects 6.0-series toolchains. It does not affect 6.1-series toolchains.

Copy and paste this into a new project and attempt to build.

This was found to be a distinct issue from this one: #78444

Reproduction

import Foundation
public enum H: Hashable, RawRepresentable { // Has to be both Hashable, RawRepresentable for the build to fail
    case cc(String) // Has to be present for the build to fail.
    case bb // We have to use "bb" and not "cc" in lines 12, or the build will succeed.
    public init?(rawValue: String) {fatalError()} // Needed for conformance to RawRepresentable
    public var rawValue: String {fatalError()} // Needed for conformance to RawRepresentable
    public func hash(into hasher: inout Hasher) {fatalError()} // Needed for conformance to Hashable
}
public protocol G {}
public extension G { // Has to be public for the build to fail.
    func j(of m: H, to d: Date) {
        guard m != .bb else { return }; // Need this line and the line below for the build to fail.
        self.l(of: m, to: d) // Need this line and the line above for the build to fail.
    }
    func l(of key: H, to date: Date) {
        if let self = self as? E {self.j(of: key, to: date)}
        else {print(key)} // Has to be present for the build to fail. Printing "date" also causes the build to fail.
    }
}
protocol E {func j(of: H, to: Date)}
enum F {}
extension F {final class X: G {init()  {fatalError()}}} //At least one of classes X or Y have to be "final" for the build to fail.
extension F.X: E {}
extension F {final class Y: G {init()  {fatalError()}}}
extension F.Y: E {} // We need this plus the line above for the build to fail. Deleting both will make it succeed.

Stack dump

1.	Apple Swift version 6.0.3 (swift-6.0.3-RELEASE)
2.	Compiling with effective version 5.10
3.	While evaluating request ExecuteSILPipelineRequest(Run pipelines { PrepareOptimizationPasses, EarlyModulePasses, HighLevel,Function+EarlyLoopOpt, HighLevel,Module+StackPromote, MidLevel,Function, ClosureSpecialize, LowLevel,Function, LateLoopOpt, SIL Debug Info Generator } on SIL for a)
4.	While running pass #9655 SILFunctionTransform "OwnershipModelEliminator" on SILFunction "@$s4a1FO1XCAA1EA2aFP1j2of2toyAA1HO_10Foundation4DateVtFTW".
 for 'j(of:to:)' (at /Users/user/a/main.swift:11:5)
5.	Found verification error when verifying before lowering ownership. Please re-run with -sil-verify-all to identify the actual pass that introduced the verification error.
6.	While verifying SIL function "@$s4a1FO1XCAA1EA2aFP1j2of2toyAA1HO_10Foundation4DateVtFTW".
 for 'j(of:to:)' (at /Users/user/a/main.swift:11:5)
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  swift-frontend           0x0000000109fcc0f8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  swift-frontend           0x0000000109fca8c4 llvm::sys::RunSignalHandlers() + 112
2  swift-frontend           0x0000000109fcc740 SignalHandler(int) + 304
3  libsystem_platform.dylib 0x0000000184029a24 _sigtramp + 56
4  libsystem_pthread.dylib  0x0000000183ff9cc0 pthread_kill + 288
5  libsystem_c.dylib        0x0000000183f05a40 abort + 180
6  swift-frontend           0x0000000109f4ae90 llvm::install_out_of_memory_new_handler() + 0
7  swift-frontend           0x0000000105a576a8 swift::LinearLifetimeChecker::ErrorBuilder::tryDumpErrorCounter() const + 0
8  swift-frontend           0x0000000105a5f05c swift::SILValueOwnershipChecker::checkValueWithoutLifetimeEndingUses(llvm::ArrayRef<swift::Operand*>) + 516
9  swift-frontend           0x0000000105a5db60 swift::SILValueOwnershipChecker::checkUses() + 248
10 swift-frontend           0x0000000105a5d8a8 swift::SILValueOwnershipChecker::check() + 216
11 swift-frontend           0x0000000105a5f5ec verifySILValueHelper(swift::SILFunction const*, swift::SILValue, swift::LinearLifetimeChecker::ErrorBuilder&, swift::DeadEndBlocks*, swift::GuaranteedPhiVerifier&) + 144
12 swift-frontend           0x0000000105a5f4cc swift::SILValue::verifyOwnership(swift::DeadEndBlocks*) const + 216
13 swift-frontend           0x0000000105a8035c (anonymous namespace)::SILVerifier::checkValueBaseOwnership(swift::ValueBase*) + 164
14 swift-frontend           0x0000000105a83284 (anonymous namespace)::SILVerifier::visitSILInstruction(swift::SILInstruction*) + 6264
15 swift-frontend           0x0000000105a6c038 swift::SILVisitorBase<(anonymous namespace)::SILVerifier, void>::visitSILBasicBlock(swift::SILBasicBlock*) + 11776
16 swift-frontend           0x0000000105a69138 (anonymous namespace)::SILVerifier::visitSILBasicBlock(swift::SILBasicBlock*) + 28
17 swift-frontend           0x0000000105a678e4 (anonymous namespace)::SILVerifier::visitSILFunction(swift::SILFunction*) + 10556
18 swift-frontend           0x0000000105a60f40 swift::SILFunction::verify(swift::CalleeCache*, bool, bool, bool) const + 204
19 swift-frontend           0x00000001054e3190 (anonymous namespace)::OwnershipModelEliminator::run() + 268
20 swift-frontend           0x00000001054e99fc swift::SILPassManager::runPassOnFunction(unsigned int, swift::SILFunction*) + 1432
21 swift-frontend           0x00000001054ea868 swift::SILPassManager::runFunctionPasses(unsigned int, unsigned int) + 1060
22 swift-frontend           0x00000001054e7a38 swift::SILPassManager::executePassPipelinePlan(swift::SILPassPipelinePlan const&) + 72
23 swift-frontend           0x00000001054e79b8 swift::ExecuteSILPipelineRequest::evaluate(swift::Evaluator&, swift::SILPipelineExecutionDescriptor) const + 68
24 swift-frontend           0x0000000105522130 swift::SimpleRequest<swift::ExecuteSILPipelineRequest, std::__1::tuple<> (swift::SILPipelineExecutionDescriptor), (swift::RequestFlags)1>::evaluateRequest(swift::ExecuteSILPipelineRequest const&, swift::Evaluator&) + 28
25 swift-frontend           0x0000000105502788 swift::ExecuteSILPipelineRequest::OutputType swift::Evaluator::getResultUncached<swift::ExecuteSILPipelineRequest, swift::ExecuteSILPipelineRequest::OutputType swift::evaluateOrFatal<swift::ExecuteSILPipelineRequest>(swift::Evaluator&, swift::ExecuteSILPipelineRequest)::'lambda'()>(swift::ExecuteSILPipelineRequest const&, swift::ExecuteSILPipelineRequest::OutputType swift::evaluateOrFatal<swift::ExecuteSILPipelineRequest>(swift::Evaluator&, swift::ExecuteSILPipelineRequest)::'lambda'()) + 204
26 swift-frontend           0x00000001054e7c14 swift::executePassPipelinePlan(swift::SILModule*, swift::SILPassPipelinePlan const&, bool, swift::irgen::IRGenModule*) + 64
27 swift-frontend           0x0000000105504d08 swift::runSILOptimizationPasses(swift::SILModule&) + 156
28 swift-frontend           0x0000000104d23068 swift::CompilerInstance::performSILProcessing(swift::SILModule*) + 636
29 swift-frontend           0x0000000104ae2a84 performCompileStepsPostSILGen(swift::CompilerInstance&, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule>>, llvm::PointerUnion<swift::ModuleDecl*, swift::SourceFile*>, swift::PrimarySpecificPaths const&, int&, swift::FrontendObserver*) + 796
30 swift-frontend           0x0000000104ae2380 swift::performCompileStepsPostSema(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 1216
31 swift-frontend           0x0000000104aede5c withSemanticAnalysis(swift::CompilerInstance&, swift::FrontendObserver*, llvm::function_ref<bool (swift::CompilerInstance&)>, bool) + 160
32 swift-frontend           0x0000000104ae4028 performCompile(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 708
33 swift-frontend           0x0000000104ae36fc swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2344
34 swift-frontend           0x00000001048f9edc swift::mainEntry(int, char const**) + 3096
35 dyld                     0x0000000183c790e0 start + 2360

Expected behavior

The build should complete successfully.

Environment

This affects every 6.0-series toolchain I've tried:
6.0 Development Snapshot 2024-07-11a
6.0.2 Release 2024-10-24a
6.0.3 Release 2024-12-10a

This isn't impacting the 6.1 series; the build succeeds there.

Additional information

I haven't found the download URL for the 6.0 series Development Snapshots from last year on here:
https://www.swift.org/install/macos/
It looks like only 6.1 series development snapshots are available.
If provided, I can edit the date of the URL in order to try to narrow down the commits where the breaking change was introduced.

@fibrechannelscsi fibrechannelscsi added bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. crash Bug: A crash, i.e., an abnormal termination of software triage needed This issue needs more specific labels labels Jan 26, 2025
@finagolfin
Copy link
Member

I cannot reproduce this with the linux toolchains.

@finagolfin finagolfin added compiler The Swift compiler itself macOS Platform: macOS verifier SIL SIL ownership Area → compiler → SIL: SIL ownership swift 6.0 and removed triage needed This issue needs more specific labels labels Jan 26, 2025
@finagolfin
Copy link
Member

If you want to help bisect this, all the old toolchains should still be available at swift.org. Simply take the URL for a recent snapshot build, such as https://download.swift.org/development/xcode/swift-DEVELOPMENT-SNAPSHOT-2025-01-10-a/swift-DEVELOPMENT-SNAPSHOT-2025-01-10-a-osx.pkg, and replace the date with the one you want to try. To see on which dates a snapshot toolchain was built in the first half of last year, get a Swift repo like swift-package-manager through git (this compiler repo is huge, so you may want to get a smaller one), and then run git tag -l | ag 2024-0[1-6] to get a list of those snapshot tag dates.

@fibrechannelscsi
Copy link
Contributor Author

More information on this one (I'm running this on MacOS 14.2.1):

  1. All 5.10 and 6.1 builds that I've tried in Release mode work (including 5.10 2024-01-24a and 5.10.1 Release 2024-06-04a).
  2. All 6.0 builds in release mode fail (this one is the earliest 6.0 edition I could find:
    https://download.swift.org/swift-6.0-branch/xcode/swift-6.0-DEVELOPMENT-SNAPSHOT-2024-03-21-a/swift-6.0-DEVELOPMENT-SNAPSHOT-2024-03-21-a-osx.pkg ) Note that this particular one may show up as "5.10" in the Xcode toolchain drop-down.

I tried this on a Ubuntu 24 machine with a swift-6.0.1-RELEASE-ubuntu24.04 build, and that one does succeed (via swift package init --type executable, copying the above code into main.swift, and building with swift build --configuration release.

@finagolfin
Copy link
Member

OK, I was wrong about this working on linux, as I missed the bit about this only failing for you when compiling in release mode. That's why the bug template asks for an exact reproducer command, which you did not provide until a couple hours ago.

Simply running the following on your repro code crashes the linux snapshot builds from early last year:

> ./swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swiftc -O test.swift
error: compile command failed due to signal 6 (use -v to see invocation)
Begin Error in Function: '$s4test1FO1XCAA1EA2aFP1j2of2toyAA1HO_10Foundation4DateVtFTW'
Error! Found a leaked owned value that was never consumed.
Value:   %9 = move_value [lexical] %8 : $H               // user: %11

End Error in Function: '$s4test1FO1XCAA1EA2aFP1j2of2toyAA1HO_10Foundation4DateVtFTW'
Found ownership error?!
triggering standard assertion failure routine
UNREACHABLE executed at /home/build-user/swift/lib/SIL/Verifier/LinearLifetimeCheckerPrivate.h:211!
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend -frontend -c -primary-file test.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -color-diagnostics -O -empty-abi-descriptor -resource-dir /home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/lib/swift -module-name test -plugin-path /home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/lib/swift/host/plugins -plugin-path /home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/local/lib/swift/host/plugins -enable-default-cmo -o /tmp/TemporaryDirectory.CMeX3W/test-1.o
1.      Swift version 5.11-dev (LLVM e38a71b09bd35cf, Swift bfa370771c5d9d8)
2.      Compiling with the current language version
3.      While evaluating request ExecuteSILPipelineRequest(Run pipelines { PrepareOptimizationPasses, EarlyModulePasses, HighLevel,Function+EarlyLoopOpt, HighLevel,Module+StackPromote, MidLevel,Function, ClosureSpecialize, LowLevel,Function, LateLoopOpt, SIL Debug Info Generator } on SIL for test)
4.      While running pass #9840 SILFunctionTransform "OwnershipModelEliminator" on SILFunction "@$s4test1FO1XCAA1EA2aFP1j2of2toyAA1HO_10Foundation4DateVtFTW".
 for 'j(of:to:)' (at test.swift:11:5)
5.      Found verification error when verifying before lowering ownership. Please re-run with -sil-verify-all to identify the actual pass that introduced the verification error.
6.      While verifying SIL function "@$s4test1FO1XCAA1EA2aFP1j2of2toyAA1HO_10Foundation4DateVtFTW".
 for 'j(of:to:)' (at test.swift:11:5)
 #0 0x0000556eb62e2fd7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x7964fd7)
 #1 0x0000556eb62e0d2e llvm::sys::RunSignalHandlers() (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x7962d2e)
 #2 0x0000556eb62e364a SignalHandler(int) Signals.cpp:0:0
 #3 0x00007ff8fce4ed10 __restore_rt (/lib64/libc.so.6+0x40d10)
 #4 0x00007ff8fcea7d54 __pthread_kill_implementation (/lib64/libc.so.6+0x99d54)
 #5 0x00007ff8fce4ec5e gsignal (/lib64/libc.so.6+0x40c5e)
 #6 0x00007ff8fce36902 abort (/lib64/libc.so.6+0x28902)
 #7 0x0000556eb623926f (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x78bb26f)
 #8 0x0000556eb08bc36e swift::LinearLifetimeChecker::ErrorBuilder::handleError(llvm::function_ref<void ()>&&, bool) const crtstuff.c:0:0
 #9 0x0000556eb08c028b swift::SILValueOwnershipChecker::checkValueWithoutLifetimeEndingUses(llvm::ArrayRef<swift::Operand*>) (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x1f4228b)
#10 0x0000556eb08be9fd swift::SILValueOwnershipChecker::checkUses() (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x1f409fd)
#11 0x0000556eb08be6c2 swift::SILValueOwnershipChecker::check() (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x1f406c2)
#12 0x0000556eb08c0a11 verifySILValueHelper(swift::SILFunction const*, swift::SILValue, swift::LinearLifetimeChecker::ErrorBuilder&, swift::DeadEndBlocks*, swift::GuaranteedPhiVerifier&) SILOwnershipVerifier.cpp:0:0
#13 0x0000556eb08c08a9 swift::SILValue::verifyOwnership(swift::DeadEndBlocks*) const (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x1f428a9)
#14 0x0000556eb08e9d92 (anonymous namespace)::SILVerifier::checkValueBaseOwnership(swift::ValueBase*) SILVerifier.cpp:0:0
#15 0x0000556eb08ed148 (anonymous namespace)::SILVerifier::visitSILInstruction(swift::SILInstruction*) SILVerifier.cpp:0:0
#16 0x0000556eb08cf5ab swift::SILVisitorBase<(anonymous namespace)::SILVerifier, void>::visitSILBasicBlock(swift::SILBasicBlock*) SILVerifier.cpp:0:0
#17 0x0000556eb08cb5b0 (anonymous namespace)::SILVerifier::visitSILBasicBlock(swift::SILBasicBlock*) SILVerifier.cpp:0:0
#18 0x0000556eb08c9c09 (anonymous namespace)::SILVerifier::visitSILFunction(swift::SILFunction*) SILVerifier.cpp:0:0
#19 0x0000556eb08c23a2 swift::SILFunction::verify(swift::CalleeCache*, bool, bool, bool) const (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x1f443a2)
#20 0x0000556eb0468d00 (anonymous namespace)::OwnershipModelEliminator::run() OwnershipModelEliminator.cpp:0:0
#21 0x0000556eaff0c4c7 swift::SILPassManager::runPassOnFunction(unsigned int, swift::SILFunction*) (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x158e4c7)
#22 0x0000556eaff0d5d1 swift::SILPassManager::runFunctionPasses(unsigned int, unsigned int) (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x158f5d1)
#23 0x0000556eaff0a308 swift::SILPassManager::executePassPipelinePlan(swift::SILPassPipelinePlan const&) (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x158c308)
#24 0x0000556eaff0a2bd swift::ExecuteSILPipelineRequest::evaluate(swift::Evaluator&, swift::SILPipelineExecutionDescriptor) const (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x158c2bd)
#25 0x0000556eaff45a2a swift::SimpleRequest<swift::ExecuteSILPipelineRequest, std::tuple<> (swift::SILPipelineExecutionDescriptor), (swift::RequestFlags)1>::evaluateRequest(swift::ExecuteSILPipelineRequest const&, swift::Evaluator&) crtstuff.c:0:0
#26 0x0000556eaff31c43 llvm::Expected<swift::ExecuteSILPipelineRequest::OutputType> swift::Evaluator::getResultUncached<swift::ExecuteSILPipelineRequest>(swift::ExecuteSILPipelineRequest const&) crtstuff.c:0:0
#27 0x0000556eaff0a505 swift::executePassPipelinePlan(swift::SILModule*, swift::SILPassPipelinePlan const&, bool, swift::irgen::IRGenModule*) (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x158c505)
#28 0x0000556eaff33b19 swift::runSILOptimizationPasses(swift::SILModule&) (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0x15b5b19)
#29 0x0000556eaf92d589 swift::CompilerInstance::performSILProcessing(swift::SILModule*) (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0xfaf589)
#30 0x0000556eaf617ff3 performCompileStepsPostSILGen(swift::CompilerInstance&, std::unique_ptr<swift::SILModule, std::default_delete<swift::SILModule>>, llvm::PointerUnion<swift::ModuleDecl*, swift::SourceFile*>, swift::PrimarySpecificPaths const&, int&, swift::FrontendObserver*) FrontendTool.cpp:0:0
#31 0x0000556eaf61700d swift::performCompileStepsPostSema(swift::CompilerInstance&, int&, swift::FrontendObserver*) (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0xc9900d)
#32 0x0000556eaf62d475 withSemanticAnalysis(swift::CompilerInstance&, swift::FrontendObserver*, llvm::function_ref<bool (swift::CompilerInstance&)>, bool) FrontendTool.cpp:0:0
#33 0x0000556eaf61abe5 performCompile(swift::CompilerInstance&, int&, swift::FrontendObserver*) FrontendTool.cpp:0:0
#34 0x0000556eaf61926d swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0xc9b26d)
#35 0x0000556eaf446302 swift::mainEntry(int, char const**) (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0xac8302)
#36 0x00007ff8fce38088 __libc_start_call_main (/lib64/libc.so.6+0x2a088)
#37 0x00007ff8fce3814b __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x2a14b)
#38 0x0000556eaf445135 _start (/home/finagolfin/swift-DEVELOPMENT-SNAPSHOT-2024-01-11-a-ubi9/usr/bin/swift-frontend+0xac7135)
error: fatalError

It does not crash the linux release that you tried because assertions are turned off there. I bisected it back to that Jan. 11 trunk snapshot, which you could also have tried, no reason to only try the 5.10 and 6.0 branch snapshots. Looking at the commits between that tag and the previous one, I only see one that mentions ownership, #70741. This was probably fixed in trunk last summer, sometime after the 6.0 branch.

@jckarter, could you take a look and let us know if this is worth fixing in 6.0 or if anything further needs to be done in trunk, ie was this inadvertently or incompletely fixed in trunk or not?

@shahmishal, has there been any thought about adding a git bisecting CI for these repro samples, which would use the prebuilt toolchains as we just did to find when the crash was introduced? It would save us some manual labor to track these regressions down, might make for a good GSoC project for a student or side project for a new Swift dev.

@finagolfin finagolfin added optimized only Flag: An issue whose reproduction requires optimized compilation assertion failure Bug → crash: An assertion failure and removed macOS Platform: macOS labels Jan 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
assertion failure Bug → crash: An assertion failure bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler itself crash Bug: A crash, i.e., an abnormal termination of software optimized only Flag: An issue whose reproduction requires optimized compilation SIL ownership Area → compiler → SIL: SIL ownership SIL swift 6.0 verifier
Projects
None yet
Development

No branches or pull requests

2 participants