diff options
author | Rui Ueyama <ruiu@google.com> | 2013-11-21 00:43:46 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2013-11-21 00:43:46 +0000 |
commit | 2a10b6401bebbea2523adef5277fb09fde75f587 (patch) | |
tree | 84d825bf44ccd41b5e2c3d4117a661fc46ec85a9 | |
parent | 8c5b4be41757ef29877f796f6861afd28c8be4b8 (diff) | |
download | bcm5719-llvm-2a10b6401bebbea2523adef5277fb09fde75f587.tar.gz bcm5719-llvm-2a10b6401bebbea2523adef5277fb09fde75f587.zip |
[PECOFF] Do not check if library is already added.
llvm-svn: 195289
-rw-r--r-- | lld/include/lld/ReaderWriter/PECOFFLinkingContext.h | 10 | ||||
-rw-r--r-- | lld/lib/Driver/WinLinkDriver.cpp | 10 | ||||
-rw-r--r-- | lld/unittests/DriverTests/WinLinkDriverTest.cpp | 3 |
3 files changed, 5 insertions, 18 deletions
diff --git a/lld/include/lld/ReaderWriter/PECOFFLinkingContext.h b/lld/include/lld/ReaderWriter/PECOFFLinkingContext.h index 754c903defe..eaab5b637eb 100644 --- a/lld/include/lld/ReaderWriter/PECOFFLinkingContext.h +++ b/lld/include/lld/ReaderWriter/PECOFFLinkingContext.h @@ -203,11 +203,6 @@ public: return _noDefaultLibs.count(path) == 1; } - void addDefaultLib(StringRef path) { _defaultLibs.insert(path); } - bool hasDefaultLib(StringRef path) const { - return _defaultLibs.count(path) == 1; - } - void setNoDefaultLibAll(bool val) { _noDefaultLibAll = val; } bool getNoDefaultLibAll() const { return _noDefaultLibAll; } @@ -300,11 +295,6 @@ private: // The set to store /nodefaultlib arguments. std::set<std::string> _noDefaultLibs; - // A set containing all the library files specified by /defaultlib. This is to - // keep track what files are already added to the input graph, in order to - // prevent adding the same file more than once to the input graph. - std::set<std::string> _defaultLibs; - std::vector<StringRef> _inputSearchPaths; std::unique_ptr<Reader> _reader; std::unique_ptr<Writer> _writer; diff --git a/lld/lib/Driver/WinLinkDriver.cpp b/lld/lib/Driver/WinLinkDriver.cpp index 5ca0fa5925a..7f71a3c97b9 100644 --- a/lld/lib/Driver/WinLinkDriver.cpp +++ b/lld/lib/Driver/WinLinkDriver.cpp @@ -910,15 +910,11 @@ WinLinkDriver::parse(int argc, const char *argv[], PECOFFLinkingContext &ctx, // Add the libraries specified by /defaultlib unless they are already added // nor blacklisted by /nodefaultlib. - if (!ctx.getNoDefaultLibAll()) { - for (const StringRef path : defaultLibs) { - if (!ctx.hasNoDefaultLib(path) && !ctx.hasDefaultLib(path)) { + if (!ctx.getNoDefaultLibAll()) + for (const StringRef path : defaultLibs) + if (!ctx.hasNoDefaultLib(path)) inputElements.push_back(std::unique_ptr<InputElement>( new PECOFFLibraryNode(ctx, path))); - ctx.addDefaultLib(path); - } - } - } if (inputElements.empty() && !isReadingDirectiveSection) { diagnostics << "No input files\n"; diff --git a/lld/unittests/DriverTests/WinLinkDriverTest.cpp b/lld/unittests/DriverTests/WinLinkDriverTest.cpp index f807be9655a..65f2a9c3161 100644 --- a/lld/unittests/DriverTests/WinLinkDriverTest.cpp +++ b/lld/unittests/DriverTests/WinLinkDriverTest.cpp @@ -294,9 +294,10 @@ TEST_F(WinLinkParserTest, DefaultLib) { TEST_F(WinLinkParserTest, DefaultLibDuplicates) { EXPECT_TRUE(parse("link.exe", "/defaultlib:user32.lib", "/defaultlib:user32.lib", "a.obj", nullptr)); - EXPECT_EQ(2, inputFileCount()); + EXPECT_EQ(3, inputFileCount()); EXPECT_EQ("a.obj", inputFile(0)); EXPECT_EQ("user32.lib", inputFile(1)); + EXPECT_EQ("user32.lib", inputFile(2)); } TEST_F(WinLinkParserTest, NoDefaultLib) { |