PECOFF: Move a call of WinLinkDriver::parse from FileCOFF::doParse to FileCOFF::befor...
authorRui Ueyama <ruiu@google.com>
Fri, 27 Feb 2015 20:39:20 +0000 (20:39 +0000)
committerRui Ueyama <ruiu@google.com>
Fri, 27 Feb 2015 20:39:20 +0000 (20:39 +0000)
commit400385c8beeb802842d1e4564b3a4b840367eaa6
tree05a9aac6aee06e37dfa32571efc592bda99be147
parent50792005106411265ae9b2915869a0b5025227a2
PECOFF: Move a call of WinLinkDriver::parse from FileCOFF::doParse to FileCOFF::beforeLink

In doParse, we shouldn't do anything that has side effects. That function may be
called speculatively and possibly in parallel.

We called WinLinkDriver::parse from doParse to parse a command line in a .drectve
section. The parse function updates a linking context object, so it has many side
effects. It was not safe to call that function from doParse. beforeLink is a
function for a File object to do something that has side effects. Moving a call
of WinLinkDriver::parse to there.

llvm-svn: 230791
lld/include/lld/Driver/Driver.h
lld/include/lld/ReaderWriter/PECOFFLinkingContext.h
lld/lib/Driver/WinLinkDriver.cpp
lld/lib/ReaderWriter/PECOFF/ReaderCOFF.cpp