Merge remote-tracking branch 'origin/master' into runtime_compile_v5

This commit is contained in:
Ivan 2017-11-01 22:24:27 +03:00
commit ae4db7d3b3
180 changed files with 15036 additions and 10675 deletions

View file

@ -52,6 +52,7 @@ private:
virtual void addFuzzLinkFlags();
virtual void addCppStdlibLinkFlags();
virtual void addLinker();
virtual void addUserSwitches();
void addDefaultLibs();
virtual void addTargetFlags();
@ -371,6 +372,7 @@ void ArgsBuilder::build(llvm::StringRef outputPath,
addLTOLinkFlags();
#endif
addLinker();
addUserSwitches();
// libs added via pragma(lib, libname)
@ -395,6 +397,13 @@ void ArgsBuilder::build(llvm::StringRef outputPath,
//////////////////////////////////////////////////////////////////////////////
void ArgsBuilder::addLinker() {
if (!opts::linker.empty())
args.push_back("-fuse-ld=" + opts::linker);
}
//////////////////////////////////////////////////////////////////////////////
void ArgsBuilder::addUserSwitches() {
// additional linker and cc switches (preserve order across both lists)
for (unsigned ilink = 0, icc = 0;;) {
@ -491,6 +500,8 @@ void ArgsBuilder::addTargetFlags() {
class LdArgsBuilder : public ArgsBuilder {
void addSanitizers() override {}
void addLinker() override {}
void addUserSwitches() override {
if (!opts::ccSwitches.empty()) {
warning(Loc(), "Ignoring -Xcc options");