diff options
author | Matthias Braun <matze@braunis.de> | 2017-12-14 03:59:24 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2017-12-14 03:59:24 +0000 |
commit | 5dd72adbecb3c52e1bba6b823fbc4db3f592c8f7 (patch) | |
tree | dce9ca2510f0ca71488ab953bbbf651f413a5f4c /llvm/lib/MC/MCStreamer.cpp | |
parent | 123adb507380a9061f66f75420ce7943166ce83f (diff) | |
download | bcm5719-llvm-5dd72adbecb3c52e1bba6b823fbc4db3f592c8f7.tar.gz bcm5719-llvm-5dd72adbecb3c52e1bba6b823fbc4db3f592c8f7.zip |
MC/AsmPrinter: Reduce code duplication.
Factor out duplicated code emitting mach-o version-min specifiers.
This should be NFC but happens to fix a bug where the code in
MCMachoStreamer didn't take the version skew between darwin and macos
versions into account.
llvm-svn: 320666
Diffstat (limited to 'llvm/lib/MC/MCStreamer.cpp')
-rw-r--r-- | llvm/lib/MC/MCStreamer.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp index 4067df0eaf5..6f3647d6193 100644 --- a/llvm/lib/MC/MCStreamer.cpp +++ b/llvm/lib/MC/MCStreamer.cpp @@ -959,3 +959,32 @@ MCSymbol *MCStreamer::endSection(MCSection *Section) { EmitLabel(Sym); return Sym; } + +void MCStreamer::EmitVersionForTarget(const Triple &Target) { + if (!Target.isOSBinFormatMachO() || !Target.isOSDarwin()) + return; + // Do we even know the version? + if (Target.getOSMajorVersion() == 0) + return; + + unsigned Major; + unsigned Minor; + unsigned Update; + MCVersionMinType VersionType; + if (Target.isWatchOS()) { + VersionType = MCVM_WatchOSVersionMin; + Target.getWatchOSVersion(Major, Minor, Update); + } else if (Target.isTvOS()) { + VersionType = MCVM_TvOSVersionMin; + Target.getiOSVersion(Major, Minor, Update); + } else if (Target.isMacOSX()) { + VersionType = MCVM_OSXVersionMin; + if (!Target.getMacOSXVersion(Major, Minor, Update)) + Major = 0; + } else { + VersionType = MCVM_IOSVersionMin; + Target.getiOSVersion(Major, Minor, Update); + } + if (Major != 0) + EmitVersionMin(VersionType, Major, Minor, Update); +} |