diff options
author | Evgeny Mankov <evgeny.mankov@gmail.com> | 2017-09-25 14:42:15 +0000 |
---|---|---|
committer | Evgeny Mankov <evgeny.mankov@gmail.com> | 2017-09-25 14:42:15 +0000 |
commit | 31fef4d3f08a15361c0ef9c0fabba5ba083f85ae (patch) | |
tree | ece5ecf3ff973ff061044f27de8f48cbcc3416d6 | |
parent | 24d98f487ba3368a3de05514a3b5540023e7ef2e (diff) | |
download | bcm5719-llvm-31fef4d3f08a15361c0ef9c0fabba5ba083f85ae.tar.gz bcm5719-llvm-31fef4d3f08a15361c0ef9c0fabba5ba083f85ae.zip |
[ELF][fix] Using statically linked lld leads to segmentation fault on linking ELF
[Synopsys]
Using function elf::link(...) leads to segmentation fault on its second call. First call finishes correctly.
[Solution]
Clear the rest of globals.
Reviewed by: George Rimar and Rui Ueyama
Differential Revision: http://reviews.llvm.org/D38131
llvm-svn: 314108
-rw-r--r-- | lld/ELF/Driver.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index 309f96d54da..9aab6fd3d3a 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -75,7 +75,12 @@ bool elf::link(ArrayRef<const char *> Args, bool CanExitEarly, ErrorCount = 0; ErrorOS = &Error; InputSections.clear(); + OutputSections.clear(); Tar = nullptr; + BinaryFiles.clear(); + BitcodeFiles.clear(); + ObjectFiles.clear(); + SharedFiles.clear(); Config = make<Configuration>(); Driver = make<LinkerDriver>(); |