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

时间:2017-09-20 12:14:36

标签: ios swift xcode9

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

但是只要archived,它就会因编译失败而出现以下错误。而且,更重要的是,它没有指向代码中的任何位置(没有文件,没有函数,没有语句)。

即使我发现推断有困难 - 问题出在哪里以及问题是什么。

它是使用Xcode 9.0构建的。之前我认为这是Beta版本的问题,因为我在Beta上使用GM seedXCode 9.0 Mac OS Sierra

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'

1 个答案:

答案 0 :(得分:1)

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

选择项目,转到所需的目标,然后在构建设置下,您可以尝试在编译之前更改代码优化级别。尝试使用相应配置进行全模块优化,如下所示:

enter image description here

使用Swift 3.0这是默认设置,而Swift 4.0应该没有任何不同,恕我直言。