diff options
author | Rui Ueyama <ruiu@google.com> | 2013-12-28 08:11:21 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2013-12-28 08:11:21 +0000 |
commit | ad79838aa815db6ba6e37fa742fc9bc7b9a19e2f (patch) | |
tree | 1236b3190a2ffb873d64390c4c55f618361eae10 /lld/unittests/DriverTests/WinLinkDriverTest.cpp | |
parent | 51cff7199dc629e11f5188ccd43eddc27e081d30 (diff) | |
download | bcm5719-llvm-ad79838aa815db6ba6e37fa742fc9bc7b9a19e2f.tar.gz bcm5719-llvm-ad79838aa815db6ba6e37fa742fc9bc7b9a19e2f.zip |
[PECOFF] Use std::set to store export symbol descriptors.
Each export symbol descriptor has unique name attribute, so std::set is
better container than std::vector for it. No functionality change.
llvm-svn: 198102
Diffstat (limited to 'lld/unittests/DriverTests/WinLinkDriverTest.cpp')
-rw-r--r-- | lld/unittests/DriverTests/WinLinkDriverTest.cpp | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/lld/unittests/DriverTests/WinLinkDriverTest.cpp b/lld/unittests/DriverTests/WinLinkDriverTest.cpp index 7dc2e62511f..8868179b516 100644 --- a/lld/unittests/DriverTests/WinLinkDriverTest.cpp +++ b/lld/unittests/DriverTests/WinLinkDriverTest.cpp @@ -18,6 +18,7 @@ #include "llvm/ADT/Optional.h" #include "llvm/Support/COFF.h" +#include <set> #include <vector> using namespace llvm; @@ -158,39 +159,43 @@ TEST_F(WinLinkParserTest, AlternateName) { TEST_F(WinLinkParserTest, Export) { EXPECT_TRUE(parse("link.exe", "/export:foo", "a.out", nullptr)); - const std::vector<PECOFFLinkingContext::ExportDesc> &exports = + const std::set<PECOFFLinkingContext::ExportDesc> &exports = _context.getDllExports(); EXPECT_EQ(1U, exports.size()); - EXPECT_EQ("_foo", exports[0].name); - EXPECT_EQ(1, exports[0].ordinal); - EXPECT_FALSE(exports[0].noname); - EXPECT_FALSE(exports[0].isData); + auto it = exports.begin(); + EXPECT_EQ("_foo", it->name); + EXPECT_EQ(1, it->ordinal); + EXPECT_FALSE(it->noname); + EXPECT_FALSE(it->isData); } TEST_F(WinLinkParserTest, ExportWithOptions) { EXPECT_TRUE(parse("link.exe", "/export:foo,@8,noname,data", "/export:bar,@10,data", "a.out", nullptr)); - const std::vector<PECOFFLinkingContext::ExportDesc> &exports = + const std::set<PECOFFLinkingContext::ExportDesc> &exports = _context.getDllExports(); EXPECT_EQ(2U, exports.size()); - EXPECT_EQ("_foo", exports[0].name); - EXPECT_EQ(8, exports[0].ordinal); - EXPECT_TRUE(exports[0].noname); - EXPECT_TRUE(exports[0].isData); - EXPECT_EQ("_bar", exports[1].name); - EXPECT_EQ(10, exports[1].ordinal); - EXPECT_FALSE(exports[1].noname); - EXPECT_TRUE(exports[1].isData); + auto it = exports.begin(); + EXPECT_EQ("_bar", it->name); + EXPECT_EQ(10, it->ordinal); + EXPECT_FALSE(it->noname); + EXPECT_TRUE(it->isData); + ++it; + EXPECT_EQ("_foo", it->name); + EXPECT_EQ(8, it->ordinal); + EXPECT_TRUE(it->noname); + EXPECT_TRUE(it->isData); } TEST_F(WinLinkParserTest, ExportDuplicateExports) { EXPECT_TRUE( parse("link.exe", "/export:foo,@1", "/export:foo,@2", "a.out", nullptr)); - const std::vector<PECOFFLinkingContext::ExportDesc> &exports = + const std::set<PECOFFLinkingContext::ExportDesc> &exports = _context.getDllExports(); EXPECT_EQ(1U, exports.size()); - EXPECT_EQ("_foo", exports[0].name); - EXPECT_EQ(1, exports[0].ordinal); + auto it = exports.begin(); + EXPECT_EQ("_foo", it->name); + EXPECT_EQ(1, it->ordinal); } TEST_F(WinLinkParserTest, ExportDuplicateOrdinals) { |