diff options
author | Rui Ueyama <ruiu@google.com> | 2014-07-23 21:41:20 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2014-07-23 21:41:20 +0000 |
commit | 7c60a98f16090b942b1e6c9882d32a8141d025e3 (patch) | |
tree | bf095e24a636c4be7e268752b843c3f741ae3141 /lld/unittests/DriverTests/WinLinkDriverTest.cpp | |
parent | f997c6f90b6a756a12c85c36c4d1e7d9e471393d (diff) | |
download | bcm5719-llvm-7c60a98f16090b942b1e6c9882d32a8141d025e3.tar.gz bcm5719-llvm-7c60a98f16090b942b1e6c9882d32a8141d025e3.zip |
[PECOFF] Add the entry point file at the right place.
The entry point file needs to be processed after all other
object files and before all .lib files. It was processed
after .lib files. That caused an issue that the entry point
function was not resolved from the standard library files.
llvm-svn: 213804
Diffstat (limited to 'lld/unittests/DriverTests/WinLinkDriverTest.cpp')
-rw-r--r-- | lld/unittests/DriverTests/WinLinkDriverTest.cpp | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/lld/unittests/DriverTests/WinLinkDriverTest.cpp b/lld/unittests/DriverTests/WinLinkDriverTest.cpp index 2f74da790d4..ef36f8c86d0 100644 --- a/lld/unittests/DriverTests/WinLinkDriverTest.cpp +++ b/lld/unittests/DriverTests/WinLinkDriverTest.cpp @@ -39,7 +39,7 @@ TEST_F(WinLinkParserTest, Basic) { EXPECT_EQ(llvm::COFF::IMAGE_FILE_MACHINE_I386, _context.getMachineType()); EXPECT_EQ("a.exe", _context.outputPath()); EXPECT_EQ("start", _context.getEntrySymbolName()); - EXPECT_EQ(4, inputFileCount()); + EXPECT_EQ(5, inputFileCount()); EXPECT_EQ("a.obj", inputFile(0)); EXPECT_EQ("b.obj", inputFile(1)); EXPECT_EQ("c.obj", inputFile(2)); @@ -79,7 +79,7 @@ TEST_F(WinLinkParserTest, StartsWithHyphen) { parse("link.exe", "-subsystem:console", "-out:a.exe", "a.obj", nullptr)); EXPECT_EQ(llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI, _context.getSubsystem()); EXPECT_EQ("a.exe", _context.outputPath()); - EXPECT_EQ(2, inputFileCount()); + EXPECT_EQ(3, inputFileCount()); EXPECT_EQ("a.obj", inputFile(0)); } @@ -88,7 +88,7 @@ TEST_F(WinLinkParserTest, UppercaseOption) { parse("link.exe", "/SUBSYSTEM:CONSOLE", "/OUT:a.exe", "a.obj", nullptr)); EXPECT_EQ(llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI, _context.getSubsystem()); EXPECT_EQ("a.exe", _context.outputPath()); - EXPECT_EQ(2, inputFileCount()); + EXPECT_EQ(3, inputFileCount()); EXPECT_EQ("a.obj", inputFile(0)); } @@ -111,7 +111,7 @@ TEST_F(WinLinkParserTest, NoInputFiles) { TEST_F(WinLinkParserTest, NoFileExtension) { EXPECT_TRUE(parse("link.exe", "foo", "bar", nullptr)); EXPECT_EQ("foo.exe", _context.outputPath()); - EXPECT_EQ(3, inputFileCount()); + EXPECT_EQ(4, inputFileCount()); EXPECT_EQ("foo.obj", inputFile(0)); EXPECT_EQ("bar.obj", inputFile(1)); } @@ -119,7 +119,7 @@ TEST_F(WinLinkParserTest, NoFileExtension) { TEST_F(WinLinkParserTest, NonStandardFileExtension) { EXPECT_TRUE(parse("link.exe", "foo.o", nullptr)); EXPECT_EQ("foo.exe", _context.outputPath()); - EXPECT_EQ(2, inputFileCount()); + EXPECT_EQ(3, inputFileCount()); EXPECT_EQ("foo.o", inputFile(0)); } @@ -139,11 +139,11 @@ TEST_F(WinLinkParserTest, Libpath) { TEST_F(WinLinkParserTest, InputOrder) { EXPECT_TRUE(parse("link.exe", "a.lib", "b.obj", "c.obj", "a.lib", "d.obj", nullptr)); - EXPECT_EQ(4, inputFileCount()); + EXPECT_EQ(5, inputFileCount()); EXPECT_EQ("b.obj", inputFile(0)); EXPECT_EQ("c.obj", inputFile(1)); EXPECT_EQ("d.obj", inputFile(2)); - EXPECT_EQ("a.lib", inputFile(3, 0)); + EXPECT_EQ("a.lib", inputFile(4, 0)); } // @@ -395,33 +395,33 @@ TEST_F(WinLinkParserTest, SectionMultiple) { TEST_F(WinLinkParserTest, DefaultLib) { EXPECT_TRUE(parse("link.exe", "/defaultlib:user32.lib", "/defaultlib:kernel32", "a.obj", nullptr)); - EXPECT_EQ(2, inputFileCount()); + EXPECT_EQ(3, inputFileCount()); EXPECT_EQ("a.obj", inputFile(0)); - EXPECT_EQ("user32.lib", inputFile(1, 0)); - EXPECT_EQ("kernel32.lib", inputFile(1, 1)); + EXPECT_EQ("user32.lib", inputFile(2, 0)); + EXPECT_EQ("kernel32.lib", inputFile(2, 1)); } 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, 0)); + EXPECT_EQ("user32.lib", inputFile(2, 0)); } TEST_F(WinLinkParserTest, NoDefaultLib) { EXPECT_TRUE(parse("link.exe", "/defaultlib:user32.lib", "/defaultlib:kernel32", "/nodefaultlib:user32.lib", "a.obj", nullptr)); - EXPECT_EQ(2, inputFileCount()); + EXPECT_EQ(3, inputFileCount()); EXPECT_EQ("a.obj", inputFile(0)); - EXPECT_EQ("kernel32.lib", inputFile(1, 0)); + EXPECT_EQ("kernel32.lib", inputFile(2, 0)); } TEST_F(WinLinkParserTest, NoDefaultLibAll) { EXPECT_TRUE(parse("link.exe", "/defaultlib:user32.lib", "/defaultlib:kernel32", "/nodefaultlib", "a.obj", nullptr)); - EXPECT_EQ(2, inputFileCount()); + EXPECT_EQ(3, inputFileCount()); EXPECT_EQ("a.obj", inputFile(0)); } @@ -429,9 +429,9 @@ TEST_F(WinLinkParserTest, DisallowLib) { EXPECT_TRUE(parse("link.exe", "/defaultlib:user32.lib", "/defaultlib:kernel32", "/disallowlib:user32.lib", "a.obj", nullptr)); - EXPECT_EQ(2, inputFileCount()); + EXPECT_EQ(3, inputFileCount()); EXPECT_EQ("a.obj", inputFile(0)); - EXPECT_EQ("kernel32.lib", inputFile(1, 0)); + EXPECT_EQ("kernel32.lib", inputFile(2, 0)); } // @@ -666,7 +666,7 @@ TEST_F(WinLinkParserTest, Ignore) { "/ignore:4000", "/ignoreidl", "/implib:foo", "/safeseh", "/safeseh:no", "/functionpadmin", "a.obj", nullptr)); EXPECT_EQ("", errorMessage()); - EXPECT_EQ(2, inputFileCount()); + EXPECT_EQ(3, inputFileCount()); EXPECT_EQ("a.obj", inputFile(0)); } @@ -679,7 +679,7 @@ TEST_F(WinLinkParserTest, DashDash) { "--", "b.obj", "-c.obj", nullptr)); EXPECT_EQ(llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI, _context.getSubsystem()); EXPECT_EQ("a.exe", _context.outputPath()); - EXPECT_EQ(4, inputFileCount()); + EXPECT_EQ(5, inputFileCount()); EXPECT_EQ("a.obj", inputFile(0)); EXPECT_EQ("b.obj", inputFile(1)); EXPECT_EQ("-c.obj", inputFile(2)); |