diff --git a/include/swift/Basic/Version.h b/include/swift/Basic/Version.h index d5437ba9410..9242479f89d 100644 --- a/include/swift/Basic/Version.h +++ b/include/swift/Basic/Version.h @@ -191,9 +191,12 @@ StringRef getSwiftRevision(); /// Is the running compiler built with a version tag for distribution? /// When true, \c Version::getCurrentCompilerVersion returns a valid version -/// and \c getSwiftRevision returns the version tuple in string format. +/// and \c getCurrentCompilerTag returns the version tuple in string format. bool isCurrentCompilerTagged(); +/// Retrieves the distribtion tag of the running compiler, if any. +StringRef getCurrentCompilerTag(); + } // end namespace version } // end namespace swift diff --git a/lib/Basic/Version.cpp b/lib/Basic/Version.cpp index 17026f79b53..133935d5c16 100644 --- a/lib/Basic/Version.cpp +++ b/lib/Basic/Version.cpp @@ -507,5 +507,13 @@ bool isCurrentCompilerTagged() { #endif } +StringRef getCurrentCompilerTag() { +#ifdef SWIFT_COMPILER_VERSION + return SWIFT_COMPILER_VERSION; +#else + return StringRef(); +#endif +} + } // end namespace version } // end namespace swift diff --git a/lib/Serialization/ModuleFileSharedCore.cpp b/lib/Serialization/ModuleFileSharedCore.cpp index 6378061bd49..87ab1da6506 100644 --- a/lib/Serialization/ModuleFileSharedCore.cpp +++ b/lib/Serialization/ModuleFileSharedCore.cpp @@ -359,7 +359,7 @@ static ValidationInfo validateControlBlock( StringRef moduleRevision = blobData; if (isCompilerTagged) { StringRef compilerRevision = forcedDebugRevision ? - forcedDebugRevision : version::getSwiftRevision(); + forcedDebugRevision : version::getCurrentCompilerTag(); if (moduleRevision != compilerRevision) { result.status = Status::RevisionIncompatible; diff --git a/lib/Serialization/Serialization.cpp b/lib/Serialization/Serialization.cpp index 24dd908181d..c8165ccfcac 100644 --- a/lib/Serialization/Serialization.cpp +++ b/lib/Serialization/Serialization.cpp @@ -1004,7 +1004,7 @@ void Serializer::writeHeader(const SerializationOptions &options) { static const char* forcedDebugRevision = ::getenv("SWIFT_DEBUG_FORCE_SWIFTMODULE_REVISION"); auto revision = forcedDebugRevision ? - forcedDebugRevision : version::getSwiftRevision(); + forcedDebugRevision : version::getCurrentCompilerTag(); Revision.emit(ScratchRecord, revision); IsOSSA.emit(ScratchRecord, options.IsOSSA);