From 265c5677573fb5fa260b0368787bb06d224ffb2a Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Thu, 15 Aug 2019 02:47:12 -0400 Subject: [PATCH] Make code safer when attempting to use shell fails and there are no items. --- src/tools/clang-win.jam | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/tools/clang-win.jam b/src/tools/clang-win.jam index 46885948a..0530543c5 100644 --- a/src/tools/clang-win.jam +++ b/src/tools/clang-win.jam @@ -100,22 +100,36 @@ rule init ( version ? : command * : options * ) } } - local ml = [ regex.replace $(items[1]) "x64\\\\+link\\.exe" "x64\\ml64.exe" ] ; - ml = [ regex.replace $(ml) "x86\\\\+link\\.exe" "x86\\ml.exe" ] ; - - if ! [ MATCH "(ml\\.exe)" "(ml64\\.exe)" : $(ml) ] + local ml ; + + if $(items) { - ml = ; + ml = [ regex.replace $(items[1]) "x64\\\\+link\\.exe" "x64\\ml64.exe" ] ; + ml = [ regex.replace $(ml) "x86\\\\+link\\.exe" "x86\\ml.exe" ] ; + + if ! [ MATCH "(ml\\.exe)" "(ml64\\.exe)" : $(ml) ] + { + ml = ; + } } local assembler = [ get-option "assembler" : $(addr) : $(options) ] ; assembler ?= $(ml) ; if $(addr) = 32 { assembler ?= ml.exe ; } else { assembler ?= ml64.exe ; } - local link = [ regex.replace $(items[1]) "\\\\+HostX64\\\\+x86\\\\+" "\\HostX86\\x86\\" ] ; + local link ; + + if $(items) + { + link = [ regex.replace $(items[1]) "\\\\+HostX64\\\\+x86\\\\+" "\\HostX86\\x86\\" ] ; + } local archiver = [ get-option "archiver" : $(addr) : $(options) ] ; - archiver ?= "$(link) /lib" ; + + if $(link) + { + archiver ?= "$(link) /lib" ; + } archiver ?= lib.exe ; .notice "$(addr):" "using assembler '$(assembler)'" ;