summaryrefslogtreecommitdiffstats
path: root/lld/unittests/DriverTests/WinLinkDriverTest.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2013-12-28 08:11:21 +0000
committerRui Ueyama <ruiu@google.com>2013-12-28 08:11:21 +0000
commitad79838aa815db6ba6e37fa742fc9bc7b9a19e2f (patch)
tree1236b3190a2ffb873d64390c4c55f618361eae10 /lld/unittests/DriverTests/WinLinkDriverTest.cpp
parent51cff7199dc629e11f5188ccd43eddc27e081d30 (diff)
downloadbcm5719-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.cpp39
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) {
OpenPOWER on IntegriCloud