swiftlang / swift

The Swift Programming Language
https://swift.org
Apache License 2.0
67.5k stars 10.35k forks source link

crash inside `HandleInlinedLandingPad` #69151

Open molind opened 1 year ago

molind commented 1 year ago

Description swift-frontend crashes during release build and SWIFT_OBJC_INTEROP_MODE = objcxx

Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
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           0x0000000102d4314c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  swift-frontend           0x00000001058c1f2c llvm::sys::RunSignalHandlers() + 112
2  swift-frontend           0x000000010160310c SignalHandler(int) + 352
3  libsystem_platform.dylib 0x0000000183d0da24 _sigtramp + 56
4  libsystem_pthread.dylib  0x0000000183cdecc0 pthread_kill + 288
5  libsystem_c.dylib        0x0000000183beea50 abort + 180
6  libsystem_malloc.dylib   0x0000000183b05b08 malloc_vreport + 908
7  libsystem_malloc.dylib   0x0000000183b093f4 malloc_report + 64
8  libsystem_malloc.dylib   0x0000000183b1debc find_zone_and_free + 308
9  swift-frontend           0x00000001028a3f0c HandleInlinedLandingPad(llvm::InvokeInst*, llvm::BasicBlock*, llvm::ClonedCodeInfo&) + 1036
10 swift-frontend           0x0000000104e8e4ac llvm::InlineFunction(llvm::CallBase&, llvm::InlineFunctionInfo&, bool, llvm::AAResults*, bool, llvm::Function*) + 28248
11 swift-frontend           0x0000000100d50b54 llvm::InlinerPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) + 5264
12 swift-frontend           0x000000010293f1b8 llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) + 352
13 swift-frontend           0x00000001013fe55c llvm::DevirtSCCRepeatedPass::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) + 332
14 swift-frontend           0x0000000104f9a350 llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 2624
15 swift-frontend           0x0000000105572490 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 224
16 swift-frontend           0x0000000103372848 llvm::ModuleInlinerWrapperPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 644
17 swift-frontend           0x0000000105572490 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) + 224
18 swift-frontend           0x00000001046dcee8 swift::performLLVMOptimizations(swift::IRGenOptions const&, llvm::Module*, llvm::TargetMachine*, llvm::raw_pwrite_stream*) + 5620
19 swift-frontend           0x000000010120a5bc swift::performLLVM(swift::IRGenOptions const&, swift::DiagnosticEngine&, llvm::sys::SmartMutex<false>*, llvm::GlobalVariable*, llvm::Module*, llvm::TargetMachine*, llvm::StringRef, swift::UnifiedStatsReporter*) + 2736
20 swift-frontend           0x00000001024dc098 (anonymous namespace)::LLVMCodeGenThreads::Thread::run() + 156
21 swift-frontend           0x0000000104780000 (anonymous namespace)::LLVMCodeGenThreads::runThread(void*) + 12
22 libsystem_pthread.dylib  0x0000000183cdf034 _pthread_start + 136
23 libsystem_pthread.dylib  0x0000000183cd9e3c thread_start + 8

Steps to reproduce I've tried to change interop mode in my code. No changes was made to the codebase. Tried to build testflight build and it's crahsed. As soon as I commented SWIFT_OBJC_INTEROP_MODE in xcconfig it builds successfully.

Expected behavior It shouldn't crash.

Environment

This app uses a lot of C++17 code and works with it via objc bridges.

PaulStets commented 2 weeks ago

I'm facing the exact same issue on Xcode 16. The project uses Swift 5.10. swift-driver version: 1.115 Apple Swift version 6.0 (swiftlang-6.0.0.9.10 clang-1600.0.26.2) Target: x86_64-apple-macosx15.0