summaryrefslogtreecommitdiffstats
path: root/lld/unittests
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-01-28 21:01:24 +0000
committerRui Ueyama <ruiu@google.com>2015-01-28 21:01:24 +0000
commit48eec8a90d9ba434c3ae6687bd290c6014bef928 (patch)
tree79f939e4b193c025d29ff9501cc24f0d931b3ebd /lld/unittests
parent6f4a43e5814234ec8f6a35e5c24d3b8bb65488dd (diff)
downloadbcm5719-llvm-48eec8a90d9ba434c3ae6687bd290c6014bef928.tar.gz
bcm5719-llvm-48eec8a90d9ba434c3ae6687bd290c6014bef928.zip
ELF: add a unit test for --as-needed.
llvm-svn: 227367
Diffstat (limited to 'lld/unittests')
-rw-r--r--lld/unittests/DriverTests/GnuLdDriverTest.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/lld/unittests/DriverTests/GnuLdDriverTest.cpp b/lld/unittests/DriverTests/GnuLdDriverTest.cpp
index b5a819cf916..5ca62447ba7 100644
--- a/lld/unittests/DriverTests/GnuLdDriverTest.cpp
+++ b/lld/unittests/DriverTests/GnuLdDriverTest.cpp
@@ -147,6 +147,19 @@ TEST_F(GnuLdParserTest, DefsymMisssingValue) {
EXPECT_FALSE(parse("ld", "a.o", "--defsym=sym=", nullptr));
}
+// --as-needed
+
+TEST_F(GnuLdParserTest, AsNeeded) {
+ EXPECT_TRUE(parse("ld", "a.o", "--as-needed", "b.o", "c.o",
+ "--no-as-needed", "d.o", nullptr));
+ std::vector<std::unique_ptr<Node>> &nodes = _context->getNodes();
+ EXPECT_EQ((size_t)4, nodes.size());
+ EXPECT_FALSE(cast<FileNode>(nodes[0].get())->asNeeded());
+ EXPECT_TRUE(cast<FileNode>(nodes[1].get())->asNeeded());
+ EXPECT_TRUE(cast<FileNode>(nodes[2].get())->asNeeded());
+ EXPECT_FALSE(cast<FileNode>(nodes[3].get())->asNeeded());
+}
+
// Linker script
TEST_F(GnuLdParserTest, LinkerScriptGroup) {
OpenPOWER on IntegriCloud