@@ -5897,14 +5897,21 @@ void Process::PrintWarningToolchainMismatch(const SymbolContext &sc) {
5897
5897
return ;
5898
5898
if (sc.GetLanguage () != eLanguageTypeSwift)
5899
5899
return ;
5900
- if (SymbolFile *sym_file = sc.module_sp ->GetSymbolFile ())
5901
- if (sym_file->GetProducerVersion (*sc.comp_unit ) !=
5902
- swift::version::Version::getCurrentCompilerVersion ())
5903
- PrintWarning (Process::Warnings::eWarningsToolchainMismatch,
5904
- sc.module_sp .get (),
5905
- " %s was compiled with a Swift compiler from a different "
5906
- " toolchain. Swift expression evaluation may not work.\n " ,
5907
- sc.module_sp ->GetFileSpec ().GetFilename ().GetCString ());
5900
+ if (SymbolFile *sym_file = sc.module_sp ->GetSymbolFile ()) {
5901
+ llvm::VersionTuple sym_file_version =
5902
+ sym_file->GetProducerVersion (*sc.comp_unit );
5903
+ llvm::VersionTuple swift_version =
5904
+ swift::version::Version::getCurrentCompilerVersion ();
5905
+ if (sym_file_version != swift_version)
5906
+ PrintWarning (
5907
+ Process::Warnings::eWarningsToolchainMismatch, sc.module_sp .get (),
5908
+ " %s was compiled with a Swift compiler from a different toolchain "
5909
+ " (version '%s') than the Swift compiler integrated into LLDB "
5910
+ " (version '%s'). Swift expression evaluation may not work.\n " ,
5911
+ sc.module_sp ->GetFileSpec ().GetFilename ().GetCString (),
5912
+ sym_file_version.getAsString ().c_str (),
5913
+ swift_version.getAsString ().c_str ());
5914
+ }
5908
5915
}
5909
5916
#endif
5910
5917
0 commit comments