diff options
author | Nico Weber <nicolasweber@gmx.de> | 2015-04-11 01:32:52 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2015-04-11 01:32:52 +0000 |
commit | d9a21bf93a07994f1564ae3941d95c667cbde448 (patch) | |
tree | c0fcc3171d6d8f903b0df5edca57b5d276353d00 /lld/lib/Driver/WinLinkDriver.cpp | |
parent | 620d0ce55c5f8f797a292c7c5e01d1906bc148e5 (diff) | |
download | bcm5719-llvm-d9a21bf93a07994f1564ae3941d95c667cbde448.tar.gz bcm5719-llvm-d9a21bf93a07994f1564ae3941d95c667cbde448.zip |
Revert r234649 "PECOFF: Use C++11 braced init list to make Version objects."
This doesn't compile with MSVC 2013:
include\lld/ReaderWriter/PECOFFLinkingContext.h(356) : error C2797:
'lld::PECOFFLinkingContext::_imageVersion': list initialization
inside member initializer list or non-static data member initializer
is not implemented
include\lld/ReaderWriter/PECOFFLinkingContext.h(357) : error C2797:
'lld::PECOFFLinkingContext::_imageVersion': list initialization
inside member initializer list or non-static data member initializer
is not implemented
llvm-svn: 234676
Diffstat (limited to 'lld/lib/Driver/WinLinkDriver.cpp')
-rw-r--r-- | lld/lib/Driver/WinLinkDriver.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/lld/lib/Driver/WinLinkDriver.cpp b/lld/lib/Driver/WinLinkDriver.cpp index aef9a3d0127..7bc26bb24b0 100644 --- a/lld/lib/Driver/WinLinkDriver.cpp +++ b/lld/lib/Driver/WinLinkDriver.cpp @@ -132,7 +132,7 @@ static bool parseMemoryOption(StringRef arg, uint64_t &reserve, // Parse an argument for /version or /subsystem. The expected string is // "<integer>[.<integer>]". -static bool parseVersion(StringRef arg, int &major, int &minor) { +static bool parseVersion(StringRef arg, uint32_t &major, uint32_t &minor) { StringRef majorVersion, minorVersion; std::tie(majorVersion, minorVersion) = arg.split('.'); if (minorVersion.empty()) @@ -166,12 +166,12 @@ static llvm::COFF::WindowsSubsystem stringToWinSubsystem(StringRef str) { // "subsystem_name[,majorOSVersion[.minorOSVersion]]". static bool parseSubsystem(StringRef arg, llvm::COFF::WindowsSubsystem &subsystem, - llvm::Optional<int> &major, - llvm::Optional<int> &minor, raw_ostream &diag) { + llvm::Optional<uint32_t> &major, + llvm::Optional<uint32_t> &minor, raw_ostream &diag) { StringRef subsystemStr, osVersion; std::tie(subsystemStr, osVersion) = arg.split(','); if (!osVersion.empty()) { - int v1, v2; + uint32_t v1, v2; if (!parseVersion(osVersion, v1, v2)) return false; major = v1; @@ -1005,10 +1005,10 @@ bool WinLinkDriver::parse(int argc, const char *argv[], } if (auto *arg = parsedArgs->getLastArg(OPT_version)) { - int major, minor; + uint32_t major, minor; if (!parseVersion(arg->getValue(), major, minor)) return false; - ctx.setImageVersion({major, minor}); + ctx.setImageVersion(PECOFFLinkingContext::Version(major, minor)); } // Parse /merge:<from>=<to>. @@ -1026,12 +1026,12 @@ bool WinLinkDriver::parse(int argc, const char *argv[], // Parse /subsystem:<subsystem>[,<majorOSVersion>[.<minorOSVersion>]]. if (auto *arg = parsedArgs->getLastArg(OPT_subsystem)) { llvm::COFF::WindowsSubsystem subsystem; - llvm::Optional<int> major, minor; + llvm::Optional<uint32_t> major, minor; if (!parseSubsystem(arg->getValue(), subsystem, major, minor, diag)) return false; ctx.setSubsystem(subsystem); if (major.hasValue()) - ctx.setMinOSVersion({*major, *minor}); + ctx.setMinOSVersion(PECOFFLinkingContext::Version(*major, *minor)); } // Parse /section:name,[[!]{DEKPRSW}] @@ -1143,7 +1143,8 @@ bool WinLinkDriver::parse(int argc, const char *argv[], if (name->getBaseAddress() && ctx.getBaseAddress()) ctx.setBaseAddress(name->getBaseAddress()); } else if (auto *ver = dyn_cast<moduledef::Version>(dir)) { - ctx.setImageVersion({ver->getMajorVersion(), ver->getMinorVersion()}); + ctx.setImageVersion(PECOFFLinkingContext::Version( + ver->getMajorVersion(), ver->getMinorVersion())); } else { llvm::dbgs() << static_cast<int>(dir->getKind()) << "\n"; llvm_unreachable("Unknown module-definition directive.\n"); |