存储值类型与指针操作数类型不匹配! - 存储 i64,swift.bridge,dictionaryUpCasts

Stored value type does not match pointer operand type! - store i64, swift.bridge, dictionaryUpCasts

我们最近将代码从 Swift 2.3 迁移到了 4.0。 当 运行 在设备和模拟器上处于调试模式时,该应用程序工作正常。编译和构建没有问题。

但是一到archived,编译就失败了,报如下错误。而且,更重要的是,它没有指向代码中的任何位置(没有文件、没有函数、没有语句)。

即使是我也很难推断出问题出在哪里和什么。

它是使用 Xcode 9.0 构建的。以前我以为是 Beta 版本的问题,因为我在 Mac OS Sierra.

上使用 XCode 9.0BetaGM seed
Stored value type does not match pointer operand type!
  store i64 %119, %swift.bridge** %128, align 8, !dbg !402
 %swift.bridge*<unknown>:0: error: fatal error encountered during compilation; please file a bug report with your project and the crash log
<unknown>:0: note: Broken function found, compilation aborted!
0  swift                    0x000000010454adba PrintStackTraceSignalHandler(void*) + 42
1  swift                    0x000000010454a1f6 SignalHandler(int) + 662
2  libsystem_platform.dylib 0x00007fffacd39b3a _sigtramp + 26
3  libsystem_platform.dylib 0x0000000000000004 _sigtramp + 1395418340
4  libsystem_c.dylib        0x00007fffacbbe420 abort + 129
5  swift                    0x0000000100eb9fe7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*)::$_0::__invoke(void*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) + 551
6  swift                    0x00000001045083fb llvm::report_fatal_error(llvm::Twine const&, bool) + 571
7  swift                    0x00000001045081ba llvm::report_fatal_error(char const*, bool) + 42
8  swift                    0x00000001044de6b6 (anonymous namespace)::VerifierLegacyPass::runOnFunction(llvm::Function&) + 54
9  swift                    0x000000010448baaa llvm::FPPassManager::runOnFunction(llvm::Function&) + 506
10 swift                    0x0000000104493609 llvm::legacy::FunctionPassManagerImpl::run(llvm::Function&) + 377
11 swift                    0x00000001044933fa llvm::legacy::FunctionPassManager::run(llvm::Function&) + 410
12 swift                    0x0000000101033778 swift::performLLVM(swift::IRGenOptions&, swift::DiagnosticEngine*, llvm::sys::SmartMutex<false>*, llvm::GlobalVariable*, llvm::Module*, llvm::TargetMachine*, swift::version::Version const&, llvm::StringRef, swift::UnifiedStatsReporter*) + 5016
13 swift                    0x00000001010376d5 ThreadEntryPoint(swift::irgen::IRGenerator*, llvm::sys::SmartMutex<false>*, int) + 181
14 swift                    0x000000010103772f void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(swift::irgen::IRGenerator*, llvm::sys::SmartMutex<false>*, int), swift::irgen::IRGenerator*, llvm::sys::SmartMutex<false>*, int> >(void*) + 47
15 libsystem_pthread.dylib  0x00007fffacd4393b _pthread_body + 180
16 libsystem_pthread.dylib  0x00007fffacd43887 _pthread_body + 0
17 libsystem_pthread.dylib  0x00007fffacd4308d thread_start + 13
Stack dump:
0.  Running pass 'Module Verifier' on function '@_T0s17_dictionaryUpCasts10DictionaryVyq0_q1_GACyxq_Gs8HashableRzsAFR0_r2_lFTfq4g_nSi_SQySayACyS2SGGGSiAHSgTg5'

这是 Swift 代码生成中的错误。

Select 项目,转到你想要的目标,在构建设置下,你可以尝试在编译之前更改代码优化级别。尝试使用相应配置进行整体模块优化,如下所示:

对于 Swift 3.0,这是默认设置,Swift 4.0 应该没有什么不同,恕我直言。