(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLANG_REVISION) op: assign_op.Equal rhs: {<241602>} spids: [26] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLANG_SUB_REVISION) op: assign_op.Equal rhs: {<3>} spids: [33] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PACKAGE_VERSION) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name CLANG_REVISION) <-> (${ Id.VSub_Name CLANG_SUB_REVISION))} spids: [37] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:THIS_DIR) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {(DQ (${ Id.VSub_Number 0))}) ) ) } spids: [49] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LLVM_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name THIS_DIR) <'/../../../third_party/llvm'>)} spids: [62] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LLVM_BUILD_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name LLVM_DIR) <'/../llvm-build/Release+Asserts'>)} spids: [70] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPILER_RT_BUILD_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name LLVM_DIR) <'/../llvm-build/compiler-rt'>)} spids: [78] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LLVM_BOOTSTRAP_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name LLVM_DIR) <'/../llvm-bootstrap'>)} spids: [86] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LLVM_BOOTSTRAP_INSTALL_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name LLVM_DIR) <'/../llvm-bootstrap-install'>)} spids: [94] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLANG_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name LLVM_DIR) <'/tools/clang'>)} spids: [102] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:COMPILER_RT_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name LLVM_DIR) <'/compiler-rt'>)} spids: [110] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIBCXX_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name LLVM_DIR) <'/projects/libcxx'>)} spids: [118] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIBCXXABI_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name LLVM_DIR) <'/projects/libcxxabi'>)} spids: [126] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ANDROID_NDK_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name THIS_DIR) <'/../../../third_party/android_tools/ndk'>)} spids: [134] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STAMP_FILE) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name LLVM_DIR) <'/../llvm-build/cr_build_revision'>)} spids: [142] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHROMIUM_TOOLS_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name THIS_DIR) <'/..'>)} spids: [150] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BINUTILS_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name THIS_DIR) <'/../../../third_party/binutils'>)} spids: [158] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ABS_CHROMIUM_TOOLS_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name CHROMIUM_TOOLS_DIR))} spids: [167] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ABS_LIBCXX_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name LIBCXX_DIR))} spids: [178] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ABS_LIBCXXABI_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name LIBCXXABI_DIR))} spids: [189] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ABS_LLVM_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name LLVM_DIR))} spids: [200] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ABS_LLVM_BUILD_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name LLVM_BUILD_DIR))} spids: [211] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ABS_COMPILER_RT_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name COMPILER_RT_DIR))} spids: [222] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ABS_BINUTILS_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name BINUTILS_DIR))} spids: [233] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LLVM_REPO_URL) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name LLVM_URL> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<'https:'> <Id.Lit_Slash '/'> <Id.Lit_Slash '/'> <llvm.org> <Id.Lit_Slash '/'> <svn> <Id.Lit_Slash '/'> <llvm-project> } ) ) } spids: [248] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CDS_URL) op: assign_op.Equal rhs: {<https> <Id.Lit_Colon ':'> <'//commondatastorage.googleapis.com/chromium-browser-clang'>} spids: [263] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$GYP_DEFINES'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GYP_DEFINES) op: assign_op.Equal rhs: (word.Empty) spids: [285] ) ] ) ] spids: [269 282] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$GYP_GENERATORS'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:GYP_GENERATORS) op: assign_op.Equal rhs: (word.Empty) spids: [305] ) ] ) ] spids: [289 302] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$LLVM_DOWNLOAD_GOLD_PLUGIN'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LLVM_DOWNLOAD_GOLD_PLUGIN) op: assign_op.Equal rhs: (word.Empty) spids: [325] ) ] ) ] spids: [309 322] ) ] ) (C {<set>} {<-eu>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub token: <Id.VSub_Name LLVM_FORCE_HEAD_REVISION> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{(SQ )}) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLANG_REVISION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<svn>} {<info>} {(DQ ($ Id.VSub_DollarName '$LLVM_REPO_URL'))}) (C {<grep>} {(SQ <'Revision:'>)}) (C {<awk>} {(SQ <'{ printf $2; }'>)}) ] negated: F ) ) } spids: [367] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PACKAGE_VERSION) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name CLANG_REVISION) <-0>)} spids: [397] ) ] ) ] spids: [340 356] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OS) op: assign_op.Equal rhs: {(DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<uname>} {<-s>})))} spids: [408] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:if_needed) op: assign_op.Equal rhs: (word.Empty) spids: [421] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:force_local_build) op: assign_op.Equal rhs: (word.Empty) spids: [423] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:run_tests) op: assign_op.Equal rhs: (word.Empty) spids: [425] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bootstrap) op: assign_op.Equal rhs: (word.Empty) spids: [427] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:with_android) op: assign_op.Equal rhs: {<yes>} spids: [429] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:chrome_tools) op: assign_op.Equal rhs: {(DQ <'plugins;blink_gc_plugin'>)} spids: [432] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gcc_toolchain) op: assign_op.Equal rhs: (word.Empty) spids: [437] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:with_patches) op: assign_op.Equal rhs: {<yes>} spids: [439] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ (${ Id.VSub_Name OS))} right: {(DQ <Darwin>)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:with_android) op: assign_op.Equal rhs: (word.Empty) spids: [465] ) ] ) ] spids: [443 462] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id:Id.Op_Great left:{($ Id.VSub_Pound '$#')} right:{<0>}) ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_Number '$1')} arms: [ (case_arm pat_list: [{<--bootstrap>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bootstrap) op: assign_op.Equal rhs: {<yes>} spids: [497] ) ] ) ] spids: [493 494 501 -1] ) (case_arm pat_list: [{<--if-needed>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:if_needed) op: assign_op.Equal rhs: {<yes>} spids: [508] ) ] ) ] spids: [504 505 512 -1] ) (case_arm pat_list: [{<--force-local-build>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:force_local_build) op: assign_op.Equal rhs: {<yes>} spids: [519] ) ] ) ] spids: [515 516 523 -1] ) (case_arm pat_list: [{<--print-revision>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub token: <Id.VSub_Name LLVM_FORCE_HEAD_REVISION> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {(SQ )} ) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<svn>} {<info>} {(DQ ($ Id.VSub_DollarName '$LLVM_DIR'))}) (C {<grep>} {(SQ <'Revision:'>)}) (C {<awk>} {(SQ <'{ printf $2; }'>)}) ] negated: F ) ] spids: [530 546] ) ] else_action: [(C {<echo>} {($ Id.VSub_DollarName '$PACKAGE_VERSION')})] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<0>} ) ] spids: [526 527 590 -1] ) (case_arm pat_list: [{<--run-tests>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:run_tests) op: assign_op.Equal rhs: {<yes>} spids: [597] ) ] ) ] spids: [593 594 601 -1] ) (case_arm pat_list: [{<--without-android>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:with_android) op: assign_op.Equal rhs: (word.Empty) spids: [608] ) ] ) ] spids: [604 605 611 -1] ) (case_arm pat_list: [{<--without-patches>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:with_patches) op: assign_op.Equal rhs: (word.Empty) spids: [618] ) ] ) ] spids: [614 615 621 -1] ) (case_arm pat_list: [{<--with-chrome-tools>}] action: [ (C {<shift>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Pound '$#')} right: {<0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'--with-chrome-tools requires an argument.'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [631 644] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:chrome_tools) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [662] ) ] ) ] spids: [624 625 666 -1] ) (case_arm pat_list: [{<--gcc-toolchain>}] action: [ (C {<shift>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_Pound '$#')} right: {<0>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'--gcc-toolchain requires an argument.'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [676 689] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_x child: {(DQ ($ Id.VSub_Number '$1') <'/bin/gcc'>)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gcc_toolchain) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [724] ) ] ) ] spids: [707 721] ) ] else_action: [ (C {<echo>} {(DQ <'Invalid --gcc-toolchain: \''> ($ Id.VSub_Number '$1') <'\'.'>)} ) (C {<echo>} { (DQ <'\''> ($ Id.VSub_Number '$1') <'/bin/gcc\' does not appear to be valid.'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] ) ] spids: [669 670 757 -1] ) (case_arm pat_list: [{<--help>}] action: [ (C {<echo>} { (DQ <'usage: '> ($ Id.VSub_Number '$0') <' [--force-local-build] [--if-needed] [--run-tests] '> ) } ) (C {<echo>} {(DQ <'--bootstrap: First build clang with CC, then with itself.'>)}) (C {<echo>} {(DQ <'--force-local-build: Don\'t try to download prebuilt binaries.'>)} ) (C {<echo>} {(DQ <'--if-needed: Download clang only if the script thinks it is needed.'>)} ) (C {<echo>} {(DQ <'--run-tests: Run tests after building. Only for local builds.'>)}) (C {<echo>} {(DQ <'--print-revision: Print current clang revision and exit.'>)}) (C {<echo>} {(DQ <'--without-android: Don\'t build ASan Android runtime library.'>)}) (C {<echo>} {(DQ <'--with-chrome-tools: Select which chrome tools to build.'>)} {(DQ <'Defaults to plugins;blink_gc_plugin.'>)} ) (C {<echo>} {(DQ <' Example: --with-chrome-tools plugins;empty-string'>)}) (C {<echo>} {(DQ <'--gcc-toolchain: Set the prefix for which GCC version should'>)}) (C {<echo>} {(DQ <' be used for building. For example, to use gcc in'>)}) (C {<echo>} {(DQ <' /opt/foo/bin/gcc, use \'--gcc-toolchain \'/opt/foo'>)}) (C {<echo>} {(DQ <'--without-patches: Don\'t apply local patches.'>)}) (C {<echo>}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [761 762 872 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} {(DQ <'Unknown argument: \''> ($ Id.VSub_Number '$1') <'\'.'>)}) (C {<echo>} {(DQ <'Use --help for help.'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [875 876 900 -1] ) ] ) (C {<shift>}) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub token: <Id.VSub_Name LLVM_FORCE_HEAD_REVISION> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{(SQ )}) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:force_local_build) op: assign_op.Equal rhs: {<yes>} spids: [930] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:with_patches) op: assign_op.Equal rhs: (word.Empty) spids: [939] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(DQ ($ Id.VSub_DollarName '$GYP_DEFINES'))} right: {<Id.Lit_Other .> <Id.Lit_Other '*'> <OS> <Id.Lit_Other '='> <android> <Id.Lit_Other .> <Id.Lit_Other '*'> } ) ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:with_android) op: assign_op.Equal rhs: (word.Empty) spids: [973] ) ] ) ] spids: [943 966] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LLVM_BUILD_TOOLS_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name ABS_LLVM_DIR) <'/../llvm-build-tools'>)} spids: [980] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name OS))} right: {(DQ <Linux>)} ) ) (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ (${ Id.VSub_Name gcc_toolchain))} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.Op_Less left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<gcc>} {<-dumpversion>}) ) } right: {(DQ <4.7.0>)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_e child: { (DQ (${ Id.VSub_Name LLVM_BUILD_TOOLS_DIR) <'/gcc482'> ) } ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Downloading pre-built GCC 4.8.2...'>)}) (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name LLVM_BUILD_TOOLS_DIR))}) (command.Pipeline children: [ (C {<curl>} {<--fail>} {<-L>} {(DQ (${ Id.VSub_Name CDS_URL) <'/tools/gcc482.tgz'>)} ) (C {<tar>} {<zxf>} {<->} {<-C>} {(DQ (${ Id.VSub_Name LLVM_BUILD_TOOLS_DIR))} ) ] negated: F ) (C {<echo>} {<Done>}) ] spids: [1052 1070] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gcc_toolchain) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name LLVM_BUILD_TOOLS_DIR) <'/gcc482'>)} spids: [1131] ) ] ) ] spids: [1026 1045] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gcc_toolchain) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<which>} {<gcc>}) ) } ) ) } ) ) ) } spids: [1147] ) ] ) ] ) ] spids: [990 1023] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name OS))} right: {(DQ <Linux>)} ) right: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name OS))} right: {(DQ <Darwin>)} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.Op_Less left: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<cmake>} {<--version>}) (C {<grep>} {<-Eo>} {(SQ <'[0-9.]+'>)}) ] negated: F ) ) } right: {(DQ <3.0>)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_e child: { (DQ (${ Id.VSub_Name LLVM_BUILD_TOOLS_DIR) <'/cmake310'> ) } ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Downloading pre-built CMake 3.10...'>)}) (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name LLVM_BUILD_TOOLS_DIR))}) (command.Pipeline children: [ (C {<curl>} {<--fail>} {<-L>} { (DQ (${ Id.VSub_Name CDS_URL) <'/tools/cmake310_'> (${ Id.VSub_Name OS) <.tgz> ) } ) (C {<tar>} {<zxf>} {<->} {<-C>} {(DQ (${ Id.VSub_Name LLVM_BUILD_TOOLS_DIR))} ) ] negated: F ) (C {<echo>} {<Done>}) ] spids: [1244 1262] ) ] ) (C {<export>} {<Id.Lit_VarLike 'PATH='> (DQ (${ Id.VSub_Name LLVM_BUILD_TOOLS_DIR) <'/cmake310/bin:'> (${ Id.VSub_Name PATH) ) } ) ] spids: [1208 1237] ) ] ) ] spids: [1172 1205] ) ] ) (C {<echo>} {(DQ <'LLVM_FORCE_HEAD_REVISION was set; using r'> (${ Id.VSub_Name CLANG_REVISION))} ) ] spids: [911 927] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName '$if_needed'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name OS))} right: {(DQ <Darwin>)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<true>})] spids: [1376 1395] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name OS))} right: {(DQ <Linux>)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<true>})] spids: [1405 1424] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {(DQ ($ Id.VSub_DollarName '$GYP_DEFINES'))} right: {<Id.Lit_Other .> <Id.Lit_Other '*'> <Id.Lit_Other '('> <clang> <Id.Lit_Other '|'> <tsan> <Id.Lit_Other '|'> <asan> <Id.Lit_Other '|'> <lsan> <Id.Lit_Other '|'> <msan> <Id.Lit_Other ')'> <Id.Lit_Other '='> <1> <Id.Lit_Other .> <Id.Lit_Other '*'> } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<true>})] spids: [1434 1465] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_d child: {(DQ (${ Id.VSub_Name LLVM_BUILD_DIR))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<true>})] spids: [1475 1490] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})] ) ] spids: [1360 1373] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_f child: {(DQ (${ Id.VSub_Name STAMP_FILE))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PREVIOUSLY_BUILT_REVISON) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {(DQ (${ Id.VSub_Name STAMP_FILE))}) ) } spids: [1543] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$force_local_build'))} ) ) (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ (${ Id.VSub_Name PREVIOUSLY_BUILT_REVISON))} right: {(DQ (${ Id.VSub_Name PACKAGE_VERSION))} ) ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Clang already at '> (${ Id.VSub_Name PACKAGE_VERSION))}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<0>} ) ] spids: [1555 1592] ) ] ) ] spids: [1525 1540] ) ] ) (C {<rm>} {<-f>} {(DQ (${ Id.VSub_Name STAMP_FILE))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: {(DQ ($ Id.VSub_DollarName '$force_local_build'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CDS_FILE) op: assign_op.Equal rhs: {(DQ <clang-> (${ Id.VSub_Name PACKAGE_VERSION) <.tgz>)} spids: [1653] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CDS_OUT_DIR) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {<-d>} {<-t>} {<clang_download.XXXXXX>}) ) } spids: [1663] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CDS_OUTPUT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name CDS_OUT_DIR) <'/'> (${ Id.VSub_Name CDS_FILE))} spids: [1675] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name OS))} {<Id.Lit_Equals '='>} {(DQ <Linux>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CDS_FULL_URL) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name CDS_URL) <'/Linux_x64/'> (${ Id.VSub_Name CDS_FILE)) } spids: [1709] ) ] ) ] spids: [1687 1706] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name OS))} {<Id.Lit_Equals '='>} {(DQ <Darwin>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CDS_FULL_URL) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name CDS_URL) <'/Mac/'> (${ Id.VSub_Name CDS_FILE))} spids: [1743] ) ] ) ] spids: [1721 1740] ) ] ) (C {<echo>} {<Trying>} {<to>} {<download>} {<prebuilt>} {<clang>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{<which>} {<curl>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<curl>} {<-L>} {<--fail>} {(DQ (${ Id.VSub_Name CDS_FULL_URL))} {<-o>} {(DQ (${ Id.VSub_Name CDS_OUTPUT))} ) (C {<rm>} {<-rf>} {(DQ (${ Id.VSub_Name CDS_OUT_DIR))}) ] ) ] spids: [1771 1782] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [{<which>} {<wget>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<wget>} {(DQ (${ Id.VSub_Name CDS_FULL_URL))} {<-O>} {(DQ (${ Id.VSub_Name CDS_OUTPUT))} ) (C {<rm>} {<-rf>} {(DQ (${ Id.VSub_Name CDS_OUT_DIR))}) ] ) ] spids: [1820 1831] ) ] else_action: [ (C {<echo>} {(DQ <'Neither curl nor wget found. Please install one of these.'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ (${ Id.VSub_Name CDS_OUTPUT))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<-rf>} {(DQ (${ Id.VSub_Name LLVM_BUILD_DIR))}) (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name LLVM_BUILD_DIR))}) (C {<tar>} {<-xzf>} {(DQ (${ Id.VSub_Name CDS_OUTPUT))} {<-C>} {(DQ (${ Id.VSub_Name LLVM_BUILD_DIR))} ) (C {<echo>} {<clang>} {(DQ (${ Id.VSub_Name PACKAGE_VERSION))} {<unpacked>}) (command.Simple words: [{<echo>} {(DQ (${ Id.VSub_Name PACKAGE_VERSION))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name STAMP_FILE))} ) ] do_fork: T ) (C {<rm>} {<-rf>} {(DQ (${ Id.VSub_Name CDS_OUT_DIR))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name LLVM_DOWNLOAD_GOLD_PLUGIN))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {(${ Id.VSub_Name THIS_DIR) <'/../../../build/download_gold_plugin.py'>} ) ] spids: [1989 2004] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<0>} ) ] spids: [1881 1896] ) ] else_action: [ (C {<echo>} {<Did>} {<not>} {<find>} {<prebuilt>} {<clang>} {(DQ (${ Id.VSub_Name PACKAGE_VERSION)) <Id.Lit_Comma ','>} {<building>} ) ] ) ] spids: [1629 1642] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name with_android))} ) ) (command.Pipeline children: [ (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_d child: {(DQ (${ Id.VSub_Name ANDROID_NDK_DIR))} ) ) ] negated: T ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'Android NDK not found at '> (${ Id.VSub_Name ANDROID_NDK_DIR))}) (C {<echo>} {(DQ <'The Android NDK is needed to build a Clang whose -fsanitize=address'>)}) (C {<echo>} {(DQ <'works on Android. See '>)}) (C {<echo>} {(DQ <'http://code.google.com/p/chromium/wiki/AndroidBuildInstructions for how'>)} ) (C {<echo>} {(DQ <'to install the NDK, or pass --without-android.'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [2051 2082] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{<which>} {<cmake>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'CMake needed to build clang; please install'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [2133 2146] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (command.Simple words: [{<which>} {<ninja>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'ninja needed to build clang, please install'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [2162 2175] ) ] ) (C {<echo>} {<Reverting>} {<previously>} {<patched>} {<files>}) (command.ForEach iter_name: i iter_words: [ {(DQ (${ Id.VSub_Name CLANG_DIR) <'/test/Index/crash-recovery-modules.m'>)} {(DQ (${ Id.VSub_Name CLANG_DIR) <'/unittests/libclang/LibclangTest.cpp'>)} {(DQ (${ Id.VSub_Name COMPILER_RT_DIR) <'/lib/asan/asan_rtl.cc'>)} { (DQ (${ Id.VSub_Name COMPILER_RT_DIR) <'/test/asan/TestCases/Linux/new_array_cookie_test.cc'> ) } {(DQ (${ Id.VSub_Name LLVM_DIR) <'/test/DebugInfo/gmlt.ll'>)} {(DQ (${ Id.VSub_Name LLVM_DIR) <'/lib/CodeGen/SpillPlacement.cpp'>)} {(DQ (${ Id.VSub_Name LLVM_DIR) <'/lib/CodeGen/SpillPlacement.h'>)} {(DQ (${ Id.VSub_Name LLVM_DIR) <'/lib/Transforms/Instrumentation/MemorySanitizer.cpp'>)} {(DQ (${ Id.VSub_Name CLANG_DIR) <'/test/Driver/env.c'>)} {(DQ (${ Id.VSub_Name CLANG_DIR) <'/lib/Frontend/InitPreprocessor.cpp'>)} {(DQ (${ Id.VSub_Name CLANG_DIR) <'/test/Frontend/exceptions.c'>)} {(DQ (${ Id.VSub_Name CLANG_DIR) <'/test/Preprocessor/predefined-exceptions.m'>)} {(DQ (${ Id.VSub_Name LLVM_DIR) <'/test/Bindings/Go/go.test'>)} {(DQ (${ Id.VSub_Name CLANG_DIR) <'/lib/Parse/ParseExpr.cpp'>)} {(DQ (${ Id.VSub_Name CLANG_DIR) <'/lib/Parse/ParseTemplate.cpp'>)} {(DQ (${ Id.VSub_Name CLANG_DIR) <'/lib/Sema/SemaDeclCXX.cpp'>)} {(DQ (${ Id.VSub_Name CLANG_DIR) <'/lib/Sema/SemaExprCXX.cpp'>)} {(DQ (${ Id.VSub_Name CLANG_DIR) <'/test/SemaCXX/default2.cpp'>)} {(DQ (${ Id.VSub_Name CLANG_DIR) <'/test/SemaCXX/typo-correction-delayed.cpp'>)} { (DQ (${ Id.VSub_Name COMPILER_RT_DIR) <'/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc'> ) } {(DQ (${ Id.VSub_Name COMPILER_RT_DIR) <'/test/tsan/signal_segv_handler.cc'>)} { (DQ (${ Id.VSub_Name COMPILER_RT_DIR) <'/lib/sanitizer_common/sanitizer_coverage_libcdep.cc'> ) } {(DQ (${ Id.VSub_Name COMPILER_RT_DIR) <'/cmake/config-ix.cmake'>)} {(DQ (${ Id.VSub_Name COMPILER_RT_DIR) <'/CMakeLists.txt'>)} {(DQ (${ Id.VSub_Name COMPILER_RT_DIR) <'/lib/ubsan/ubsan_platform.h'>)} ] do_arg_iter: F body: (command.DoGroup children: [ (command.Sentence child: (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_e child: {(DQ (${ Id.VSub_Name i))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<-f>} {(DQ (${ Id.VSub_Name i))}) (C {<svn>} {<revert>} {(DQ (${ Id.VSub_Name i))}) ] spids: [2440 2455] ) ] ) terminator: <Id.Op_Semi _> ) ] ) ) (C {<echo>} {<Remove>} {<the>} {<Clang>} {<tools>} {<shim>} {<dir>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CHROME_TOOLS_SHIM_DIR) op: assign_op.Equal rhs: {(${ Id.VSub_Name ABS_LLVM_DIR) <'/tools/chrometools'>} spids: [2503] ) ] ) (C {<rm>} {<-rfv>} {(${ Id.VSub_Name CHROME_TOOLS_SHIM_DIR)}) (C {<echo>} {<Getting>} {<LLVM>} {<r> (DQ (${ Id.VSub_Name CLANG_REVISION))} {<Id.KW_In in>} {(DQ (${ Id.VSub_Name LLVM_DIR))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<svn>} {<co>} {<--force>} { (DQ (${ Id.VSub_Name LLVM_REPO_URL) <'/llvm/trunk@'> (${ Id.VSub_Name CLANG_REVISION) ) } {(DQ (${ Id.VSub_Name LLVM_DIR))} ) ] negated: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<Checkout>} {<failed> <Id.Lit_Comma ','>} {<retrying>}) (C {<rm>} {<-rf>} {(DQ (${ Id.VSub_Name LLVM_DIR))}) (C {<svn>} {<co>} {<--force>} {(DQ (${ Id.VSub_Name LLVM_REPO_URL) <'/llvm/trunk@'> (${ Id.VSub_Name CLANG_REVISION))} {(DQ (${ Id.VSub_Name LLVM_DIR))} ) ] spids: [2539 2568] ) ] ) (C {<echo>} {<Getting>} {<clang>} {<r> (DQ (${ Id.VSub_Name CLANG_REVISION))} {<Id.KW_In in>} {(DQ (${ Id.VSub_Name CLANG_DIR))} ) (C {<svn>} {<co>} {<--force>} {(DQ (${ Id.VSub_Name LLVM_REPO_URL) <'/cfe/trunk@'> (${ Id.VSub_Name CLANG_REVISION))} {(DQ (${ Id.VSub_Name CLANG_DIR))} ) (C {<rm>} {<-rf>} {(DQ (${ Id.VSub_Name LLVM_DIR) <'/projects/compiler-rt'>)}) (C {<echo>} {<Getting>} {<compiler-rt>} {<r> (DQ (${ Id.VSub_Name CLANG_REVISION))} {<Id.KW_In in>} {(DQ (${ Id.VSub_Name COMPILER_RT_DIR))} ) (C {<svn>} {<co>} {<--force>} {(DQ (${ Id.VSub_Name LLVM_REPO_URL) <'/compiler-rt/trunk@'> (${ Id.VSub_Name CLANG_REVISION))} {(DQ (${ Id.VSub_Name COMPILER_RT_DIR))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name OS))} {<Id.Lit_Equals '='>} {(DQ <Darwin>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<Getting>} {<libc> <Id.Lit_Other '+'> <Id.Lit_Other '+'>} {<r> (DQ (${ Id.VSub_Name CLANG_REVISION))} {<Id.KW_In in>} {(DQ (${ Id.VSub_Name LIBCXX_DIR))} ) (C {<svn>} {<co>} {<--force>} { (DQ (${ Id.VSub_Name LLVM_REPO_URL) <'/libcxx/trunk@'> (${ Id.VSub_Name CLANG_REVISION)) } {(DQ (${ Id.VSub_Name LIBCXX_DIR))} ) ] spids: [2731 2750] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name OS))} {<Id.Lit_Equals '='>} {(DQ <Darwin>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<Getting>} {<libc> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <abi>} {<r> (DQ (${ Id.VSub_Name CLANG_REVISION))} {<Id.KW_In in>} {(DQ (${ Id.VSub_Name LIBCXXABI_DIR))} ) (C {<svn>} {<co>} {<--force>} { (DQ (${ Id.VSub_Name LLVM_REPO_URL) <'/libcxxabi/trunk@'> (${ Id.VSub_Name CLANG_REVISION) ) } {(DQ (${ Id.VSub_Name LIBCXXABI_DIR))} ) ] spids: [2810 2829] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName '$with_patches'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<pushd>} {(DQ (${ Id.VSub_Name CLANG_DIR))}) (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 2934 stdin_parts: [ <'--- test/Index/crash-recovery-modules.m\t(revision 202554)\n'> <'+++ test/Index/crash-recovery-modules.m\t(working copy)\n'> <'@@ -12,6 +12,8 @@\n'> <' \n'> <' // REQUIRES: crash-recovery\n'> <' // REQUIRES: shell\n'> <'+// XFAIL: *\n'> <'+// (PR11974)\n'> <' \n'> <' @import Crash;\n'> ] ) ) ] do_fork: T ) (C {<patch>} {<-p0>}) ] negated: F ) (C {<popd>}) (C {<pushd>} {(DQ (${ Id.VSub_Name CLANG_DIR))}) (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 2971 stdin_parts: [ <'--- unittests/libclang/LibclangTest.cpp (revision 215949)\n'> <'+++ unittests/libclang/LibclangTest.cpp (working copy)\n'> <'@@ -431,7 +431,7 @@\n'> <' EXPECT_EQ(0U, clang_getNumDiagnostics(ClangTU));\n'> <' }\n'> <'\n'> <'-TEST_F(LibclangReparseTest, ReparseWithModule) {\n'> <'+TEST_F(LibclangReparseTest, DISABLED_ReparseWithModule) {\n'> < ' const char *HeaderTop = "#ifndef H\\n#define H\\nstruct Foo { int bar;";\n' > <' const char *HeaderBottom = "\\n};\\n#endif\\n";\n'> < ' const char *MFile = "#include \\"HeaderFile.h\\"\\nint main() {"\n' > ] ) ) ] do_fork: T ) (C {<patch>} {<-p0>}) ] negated: F ) (C {<popd>}) (C {<pushd>} {(DQ (${ Id.VSub_Name LLVM_DIR))}) (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 3012 stdin_parts: [ <'--- test/Bindings/Go/go.test (revision 223109)\n'> <'+++ test/Bindings/Go/go.test (working copy)\n'> <'@@ -1,3 +1,3 @@\n'> <'-; RUN: llvm-go test llvm.org/llvm/bindings/go/llvm\n'> <'+; RUN: true\n'> <' \n'> <' ; REQUIRES: shell\n'> ] ) ) ] do_fork: T ) (C {<patch>} {<-p0>}) ] negated: F ) (C {<popd>}) (C {<pushd>} {(DQ (${ Id.VSub_Name COMPILER_RT_DIR))}) (command.Pipeline children: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 3062 stdin_parts: [ <'Index: CMakeLists.txt\n'> < '===================================================================\n' > <'--- CMakeLists.txt\t(revision 241602)\n'> <'+++ CMakeLists.txt\t(working copy)\n'> <'@@ -305,6 +305,7 @@\n'> <' list(APPEND SANITIZER_COMMON_SUPPORTED_OS iossim)\n'> <' endif()\n'> <' endif()\n'> <'+ set(SANITIZER_MIN_OSX_VERSION "10.7")\n'> <' if(SANITIZER_MIN_OSX_VERSION VERSION_LESS "10.7")\n'> < ' message(FATAL_ERROR "Too old OS X version: ${SANITIZER_MIN_OSX_VERSION}")\n' > <' endif()\n'> ] ) ) ] do_fork: T ) (C {<patch>} {<-p0>}) ] negated: F ) (C {<popd>}) ] spids: [2884 2897] ) ] ) (C {<set>} {<-x>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CC) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name CC> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<cc>}) ) } spids: [3086] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CXX) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name CXX> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<c> <Id.Lit_Other '+'> <Id.Lit_Other '+'>} ) ) } spids: [3093] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name gcc_toolchain))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CC) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$gcc_toolchain') <'/bin/gcc'>)} spids: [3125] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CXX) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$gcc_toolchain') <'/bin/g++'>)} spids: [3132] ) ] ) (C {<export>} {<Id.Lit_VarLike 'LD_LIBRARY_PATH='> (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {(${ Id.VSub_Name CXX)} {<-print-file-name> <Id.Lit_Equals '='> <libstdc> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <.so.6> } ) ) } ) ) ) } ) ] spids: [3103 3118] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CFLAGS) op: assign_op.Equal rhs: {(DQ )} spids: [3172] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CXXFLAGS) op: assign_op.Equal rhs: {(DQ )} spids: [3176] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LDFLAGS) op: assign_op.Equal rhs: {(DQ )} spids: [3180] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:deployment_target) op: assign_op.Equal rhs: {(DQ )} spids: [3206] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name OS))} {<Id.Lit_Equals '='>} {(DQ <Darwin>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CFLAGS) op: assign_op.Equal rhs: { (DQ <'-isysroot '> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<xcrun>} {<--show-sdk-path>}) ) ) } spids: [3241] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CXXFLAGS) op: assign_op.Equal rhs: { (DQ <'-stdlib=libc++ -nostdinc++ -I'> (${ Id.VSub_Name ABS_LIBCXX_DIR) <'/include '> (${ Id.VSub_Name CFLAGS) ) } spids: [3252] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name bootstrap))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:deployment_target) op: assign_op.Equal rhs: {<10.6>} spids: [3284] ) ] ) ] spids: [3266 3281] ) ] ) ] spids: [3211 3230] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name bootstrap))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ABS_INSTALL_DIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name PWD) <'/'> (${ Id.VSub_Name LLVM_BOOTSTRAP_INSTALL_DIR))} spids: [3314] ) ] ) (C {<echo>} {(DQ <'Building bootstrap compiler'>)}) (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name LLVM_BOOTSTRAP_DIR))}) (C {<pushd>} {(DQ (${ Id.VSub_Name LLVM_BOOTSTRAP_DIR))}) (C {<cmake>} {<-GNinja>} {<-DCMAKE_BUILD_TYPE> <Id.Lit_Equals '='> <Release>} {<-DLLVM_ENABLE_ASSERTIONS> <Id.Lit_Equals '='> <ON>} {<-DLLVM_TARGETS_TO_BUILD> <Id.Lit_Equals '='> <host>} {<-DLLVM_ENABLE_THREADS> <Id.Lit_Equals '='> <OFF>} {<-DCMAKE_INSTALL_PREFIX> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name ABS_INSTALL_DIR))} {<-DCMAKE_C_COMPILER> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name CC))} {<-DCMAKE_CXX_COMPILER> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name CXX))} {<-DCMAKE_C_FLAGS> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name CFLAGS))} {<-DCMAKE_CXX_FLAGS> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name CXXFLAGS))} {<'../llvm'>} ) (C {<ninja>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name run_tests))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<ninja>} {<check-all>})] spids: [3441 3456] ) ] ) (C {<ninja>} {<install>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name gcc_toolchain))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<cp>} {<-v>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {(${ Id.VSub_Name CXX)} {<-print-file-name> <Id.Lit_Equals '='> <libstdc> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <.so.6> } ) ) ) } {(DQ (${ Id.VSub_Name ABS_INSTALL_DIR) <'/lib/'>)} ) ] spids: [3473 3488] ) ] ) (C {<popd>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CC) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name ABS_INSTALL_DIR) <'/bin/clang'>)} spids: [3535] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CXX) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name ABS_INSTALL_DIR) <'/bin/clang++'>)} spids: [3544] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name gcc_toolchain))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CFLAGS) op: assign_op.Equal rhs: {(DQ <'--gcc-toolchain='> (${ Id.VSub_Name gcc_toolchain))} spids: [3580] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CXXFLAGS) op: assign_op.Equal rhs: {(DQ <'--gcc-toolchain='> (${ Id.VSub_Name gcc_toolchain))} spids: [3589] ) ] ) ] spids: [3554 3569] ) ] ) (C {<echo>} {(DQ <'Building final compiler'>)}) ] spids: [3296 3311] ) ] ) (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name LLVM_BUILD_DIR))}) (C {<pushd>} {(DQ (${ Id.VSub_Name LLVM_BUILD_DIR))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name OS))} {<Id.Lit_Equals '='>} {(DQ <Darwin>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<-rf>} {<libcxxbuild>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LIBCXXFLAGS) op: assign_op.Equal rhs: {(DQ <'-O3 -std=c++11 -fstrict-aliasing'>)} spids: [3671] ) ] ) (C {<mkdir>} {<-p>} {<'libcxxbuild/libcxx'>}) (C {<pushd>} {<'libcxxbuild/libcxx'>}) (C { (braced_var_sub token: <Id.VSub_Name CXX> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<c> <Id.Lit_Other '+'> <Id.Lit_Other '+'>} ) ) } {<-c>} {(${ Id.VSub_Name CXXFLAGS)} {(${ Id.VSub_Name LIBCXXFLAGS)} {(DQ (${ Id.VSub_Name ABS_LIBCXX_DIR)) <'/src/'> <Id.Lit_Star '*'> <.cpp>} ) (C {<popd>}) (C {<mkdir>} {<-p>} {<'libcxxbuild/libcxxabi'>}) (C {<pushd>} {<'libcxxbuild/libcxxabi'>}) (C { (braced_var_sub token: <Id.VSub_Name CXX> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<c> <Id.Lit_Other '+'> <Id.Lit_Other '+'>} ) ) } {<-c>} {(${ Id.VSub_Name CXXFLAGS)} {(${ Id.VSub_Name LIBCXXFLAGS)} {(DQ (${ Id.VSub_Name ABS_LIBCXXABI_DIR)) <'/src/'> <Id.Lit_Star '*'> <.cpp>} {<-I> (DQ (${ Id.VSub_Name ABS_LIBCXXABI_DIR) <'/include'>)} ) (C {<popd>}) (C {<pushd>} {<libcxxbuild>}) (C { (braced_var_sub token: <Id.VSub_Name CC> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{<cc>}) ) } {<'libcxx/'> <Id.Lit_Star '*'> <.o>} {<'libcxxabi/'> <Id.Lit_Star '*'> <.o>} {<-o>} {<libc> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <.1.dylib>} {<-dynamiclib>} {<-nodefaultlibs>} {<-current_version>} {<1>} {<-compatibility_version>} {<1>} {<-lSystem>} {<-install_name>} {<Id.Lit_Splice '@executable_path'> <'/libc'> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <.dylib>} {<-Wl> <Id.Lit_Comma ','> <-unexported_symbols_list> <Id.Lit_Comma ','> (${ Id.VSub_Name ABS_LIBCXX_DIR) <'/lib/libc'> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <unexp.exp> } {<-Wl> <Id.Lit_Comma ','> <-force_symbols_not_weak_list> <Id.Lit_Comma ','> (${ Id.VSub_Name ABS_LIBCXX_DIR) <'/lib/notweak.exp'> } {<-Wl> <Id.Lit_Comma ','> <-force_symbols_weak_list> <Id.Lit_Comma ','> (${ Id.VSub_Name ABS_LIBCXX_DIR) <'/lib/weak.exp'> } ) (C {<ln>} {<-sf>} {<libc> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <.1.dylib>} {<libc> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <.dylib>} ) (C {<popd>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LDFLAGS) op: assign_op.PlusEqual rhs: {(DQ <'-stdlib=libc++ -L'> (${ Id.VSub_Name PWD) <'/libcxxbuild'>)} spids: [3889] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name bootstrap))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<rm>} {<-rf>} {(DQ (${ Id.VSub_Name ABS_LIBCXX_DIR))}) (C {<rm>} {<-rf>} {(DQ (${ Id.VSub_Name ABS_LIBCXXABI_DIR))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CXXFLAGS) op: assign_op.Equal rhs: { (DQ <'-stdlib=libc++ -nostdinc++ -I'> (${ Id.VSub_Name ABS_INSTALL_DIR) <'/include/c++/v1 '> (${ Id.VSub_Name CFLAGS) ) } spids: [3956] ) ] ) ] spids: [3900 3915] ) ] ) ] spids: [3642 3661] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BINUTILS_INCDIR) op: assign_op.Equal rhs: {(DQ )} spids: [3977] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name OS))} {<Id.Lit_Equals '='>} {(DQ <Linux>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BINUTILS_INCDIR) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name ABS_BINUTILS_DIR) <'/Linux_x64/Release/include'>)} spids: [4003] ) ] ) ] spids: [3981 4000] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (braced_var_sub token: <Id.VSub_Name LLVM_FORCE_HEAD_REVISION> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:{(SQ )}) ) } ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CFLAGS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name CFLAGS) <' -DLLVM_FORCE_HEAD_REVISION'>)} spids: [4040] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CXXFLAGS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name CXXFLAGS) <' -DLLVM_FORCE_HEAD_REVISION'>)} spids: [4049] ) ] ) ] spids: [4021 4037] ) ] ) (C {<mkdir>} {<-v>} {(${ Id.VSub_Name CHROME_TOOLS_SHIM_DIR)}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name CHROME_TOOLS_SHIM_DIR) <'/CMakeLists.txt'>} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 4109 stdin_parts: [ < '# Since tools/clang isn\'t actually a subdirectory, use the two argument version\n' > <'# to specify where build artifacts go. CMake doesn\'t allow reusing the same\n'> < '# binary dir for multiple source dirs, so the build artifacts have to go into a\n' > <'# subdirectory...\n'> <'add_subdirectory('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{CHROMIUM_TOOLS_SRC} '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{CMAKE_CURRENT_BINARY_DIR}/a)\n'> ] ) ) ] do_fork: T ) (C {<rm>} {<-fv>} {<CMakeCache.txt>}) (command.Simple words: [ {<cmake>} {<-GNinja>} {<-DCMAKE_BUILD_TYPE> <Id.Lit_Equals '='> <Release>} {<-DLLVM_ENABLE_ASSERTIONS> <Id.Lit_Equals '='> <ON>} {<-DLLVM_ENABLE_THREADS> <Id.Lit_Equals '='> <OFF>} {<-DLLVM_BINUTILS_INCDIR> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name BINUTILS_INCDIR))} {<-DCMAKE_C_COMPILER> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name CC))} {<-DCMAKE_CXX_COMPILER> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name CXX))} {<-DCMAKE_C_FLAGS> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name CFLAGS))} {<-DCMAKE_CXX_FLAGS> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name CXXFLAGS))} {<-DCMAKE_EXE_LINKER_FLAGS> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name LDFLAGS))} {<-DCMAKE_SHARED_LINKER_FLAGS> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name LDFLAGS))} {<-DCMAKE_MODULE_LINKER_FLAGS> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name LDFLAGS))} {<-DCMAKE_INSTALL_PREFIX> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name ABS_LLVM_BUILD_DIR))} {<-DCHROMIUM_TOOLS_SRC> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name ABS_CHROMIUM_TOOLS_DIR))} {<-DCHROMIUM_TOOLS> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name chrome_tools))} {(DQ (${ Id.VSub_Name ABS_LLVM_DIR))} ] more_env: [ (env_pair name: MACOSX_DEPLOYMENT_TARGET val: {(${ Id.VSub_Name deployment_target)} spids: [4116] ) ] do_fork: T ) (C {<env>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name gcc_toolchain))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<mkdir>} {<-p>} {<lib>}) (C {<cp>} {<-v>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {(${ Id.VSub_Name CXX)} {(${ Id.VSub_Name CXXFLAGS)} {<-print-file-name> <Id.Lit_Equals '='> <libstdc> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <.so.6> } ) ) ) } {<'lib/'>} ) ] spids: [4264 4279] ) ] ) (C {<ninja>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name chrome_tools))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<ninja>} {<cr-install>})] spids: [4326 4341] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STRIP_FLAGS) op: assign_op.Equal rhs: (word.Empty) spids: [4351] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name OS))} {<Id.Lit_Equals '='>} {(DQ <Darwin>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:STRIP_FLAGS) op: assign_op.Equal rhs: {<-x>} spids: [4379] ) ] ) (C {<cp>} {<'libcxxbuild/libc'> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <.1.dylib>} {<'bin/'>}) ] spids: [4353 4372] ) ] ) (C {<strip>} {(${ Id.VSub_Name STRIP_FLAGS)} {<'bin/clang'>}) (C {<popd>}) (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name COMPILER_RT_BUILD_DIR))}) (C {<pushd>} {(DQ (${ Id.VSub_Name COMPILER_RT_BUILD_DIR))}) (C {<rm>} {<-fv>} {<CMakeCache.txt>}) (command.Simple words: [ {<cmake>} {<-GNinja>} {<-DCMAKE_BUILD_TYPE> <Id.Lit_Equals '='> <Release>} {<-DLLVM_ENABLE_ASSERTIONS> <Id.Lit_Equals '='> <ON>} {<-DLLVM_ENABLE_THREADS> <Id.Lit_Equals '='> <OFF>} {<-DCMAKE_C_COMPILER> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name CC))} {<-DCMAKE_CXX_COMPILER> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name CXX))} {<-DLLVM_CONFIG_PATH> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name ABS_LLVM_BUILD_DIR) <'/bin/llvm-config'>) } {(DQ (${ Id.VSub_Name ABS_COMPILER_RT_DIR))} ] more_env: [ (env_pair name: MACOSX_DEPLOYMENT_TARGET val: {(${ Id.VSub_Name deployment_target)} spids: [4434] ) ] do_fork: T ) (C {<ninja>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CLANG_VERSION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {(DQ (${ Id.VSub_Name ABS_LLVM_BUILD_DIR) <'/bin/clang'>)} {<--version>}) (C {<sed>} {<-ne>} {(SQ <'s/clang version \\([0-9]\\.[0-9]\\.[0-9]\\).*/\\1/p'>)}) ] negated: F ) ) } spids: [4510] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ABS_LLVM_CLANG_LIB_DIR) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name ABS_LLVM_BUILD_DIR) <'/lib/clang/'> (${ Id.VSub_Name CLANG_VERSION)) } spids: [4534] ) ] ) (command.Pipeline children: [ (C {<tar>} {<-c>} {<Id.Lit_Star '*'> <blacklist.txt>}) (C {<tar>} {<-C>} {(${ Id.VSub_Name ABS_LLVM_CLANG_LIB_DIR)} {<-xv>}) ] negated: F ) (command.Pipeline children: [ (C {<tar>} {<-c>} {<'include/sanitizer'>}) (C {<tar>} {<-C>} {(${ Id.VSub_Name ABS_LLVM_CLANG_LIB_DIR)} {<-xv>}) ] negated: F ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobEqual left: {(DQ (${ Id.VSub_Name OS))} right: {(DQ <Darwin>)} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<tar>} {<-c>} {<'lib/darwin'>}) (C {<tar>} {<-C>} {(${ Id.VSub_Name ABS_LLVM_CLANG_LIB_DIR)} {<-xv>}) ] negated: F ) ] spids: [4582 4601] ) ] else_action: [ (command.Pipeline children: [ (C {<tar>} {<-c>} {<'lib/linux'>}) (C {<tar>} {<-C>} {(${ Id.VSub_Name ABS_LLVM_CLANG_LIB_DIR)} {<-xv>}) ] negated: F ) ] ) (C {<popd>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ (${ Id.VSub_Name with_android))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {(${ Id.VSub_Name ANDROID_NDK_DIR) <'/build/tools/make-standalone-toolchain.sh'>} {<--platform> <Id.Lit_Equals '='> <android-19>} {<--install-dir> <Id.Lit_Equals '='> (DQ (${ Id.VSub_Name LLVM_BUILD_DIR) <'/android-toolchain'>)} {<--system> <Id.Lit_Equals '='> <linux-x86_64>} {<--stl> <Id.Lit_Equals '='> <stlport>} {<--toolchain> <Id.Lit_Equals '='> <arm-linux-androideabi-4.9>} ) (C {<rm>} {<-v>} {(DQ (${ Id.VSub_Name LLVM_BUILD_DIR)) <'/android-toolchain/include/c'> <Id.Lit_Other '+'> <Id.Lit_Other '+'> <'/'> <Id.Lit_Star '*'> <'/unwind.h'> } ) (C {<mkdir>} {<-p>} {(${ Id.VSub_Name LLVM_BUILD_DIR) <'/android'>}) (C {<pushd>} {(${ Id.VSub_Name LLVM_BUILD_DIR) <'/android'>}) (C {<rm>} {<-fv>} {<CMakeCache.txt>}) (command.Simple words: [ {<cmake>} {<-GNinja>} {<-DCMAKE_BUILD_TYPE> <Id.Lit_Equals '='> <Release>} {<-DLLVM_ENABLE_ASSERTIONS> <Id.Lit_Equals '='> <ON>} {<-DLLVM_ENABLE_THREADS> <Id.Lit_Equals '='> <OFF>} {<-DCMAKE_C_COMPILER> <Id.Lit_Equals '='> (${ Id.VSub_Name PWD) <'/../bin/clang'>} {<-DCMAKE_CXX_COMPILER> <Id.Lit_Equals '='> (${ Id.VSub_Name PWD) <'/../bin/clang'> <Id.Lit_Other '+'> <Id.Lit_Other '+'> } {<-DLLVM_CONFIG_PATH> <Id.Lit_Equals '='> (${ Id.VSub_Name PWD) <'/../bin/llvm-config'>} {<-DCMAKE_C_FLAGS> <Id.Lit_Equals '='> (DQ <'--target=arm-linux-androideabi --sysroot='> (${ Id.VSub_Name PWD) <'/../android-toolchain/sysroot -B'> (${ Id.VSub_Name PWD) <'/../android-toolchain'> ) } {<-DCMAKE_CXX_FLAGS> <Id.Lit_Equals '='> (DQ <'--target=arm-linux-androideabi --sysroot='> (${ Id.VSub_Name PWD) <'/../android-toolchain/sysroot -B'> (${ Id.VSub_Name PWD) <'/../android-toolchain'> ) } {<-DANDROID> <Id.Lit_Equals '='> <1>} {(DQ (${ Id.VSub_Name ABS_COMPILER_RT_DIR))} ] more_env: [ (env_pair name: MACOSX_DEPLOYMENT_TARGET val: {(${ Id.VSub_Name deployment_target)} spids: [4768] ) ] do_fork: T ) (C {<ninja>} {<libclang_rt.asan-arm-android.so>}) (C {<cp>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<find>} {<-name>} {<libclang_rt.asan-arm-android.so>}) ) ) } {(DQ (${ Id.VSub_Name ABS_LLVM_CLANG_LIB_DIR) <'/lib/linux/'>)} ) (C {<popd>}) ] spids: [4649 4664] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalOr left: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName '$run_tests'))} ) right: (bool_expr.Unary op_id: Id.BoolUnary_n child: { (DQ (braced_var_sub token: <Id.VSub_Name LLVM_FORCE_HEAD_REVISION> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<'\'\''>} ) ) ) } ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<ninja>} {<-C>} {(DQ (${ Id.VSub_Name LLVM_BUILD_DIR))} {<cr-check-all>})] spids: [4906 4931] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_n child: {(DQ ($ Id.VSub_DollarName '$run_tests'))} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<ninja>} {<-C>} {(DQ (${ Id.VSub_Name LLVM_BUILD_DIR))} {<check-all>})] spids: [4952 4965] ) ] ) (command.Simple words: [{<echo>} {(DQ (${ Id.VSub_Name PACKAGE_VERSION))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name STAMP_FILE))} ) ] do_fork: T ) ] )