(List (= scope= flags=1 words=[] bindings=[('THISDIR', {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub 0]})]})]) (FunctionDef setup_memcheck [] (List (= scope= flags=0 words=[] bindings=[('RUN_COMMAND', {[DQ [LIT_CHARS valgrind]]})]) (= scope= flags=0 words=[] bindings=[('DEFAULT_TOOL_FLAGS', {[Array {[DQ [LIT_CHARS "--db-command=gdb -nw %f %p"]]} {[DQ [LIT_CHARS "--db-attach=yes"]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--vex-iropt-register-updates=allregs-at-mem-access"]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--malloc-fill=41"]]} {[DQ [LIT_CHARS "--free-fill=41"]]} {OP_NEWLINE "\n"} {[DQ [LIT_CHARS "--num-callers=30"]]}]})]) ) ) (FunctionDef setup_tsan [] (List (= scope= flags=0 words=[] bindings=[('RUN_COMMAND', {[DQ [LIT_CHARS valgrind-tsan.sh]]})]) (= scope= flags=0 words=[] bindings=[('IGNORE_FILE', {[DQ [VarSub THISDIR][LIT_CHARS /tsan/ignores.txt]]})]) (= scope= flags=0 words=[] bindings=[('DEFAULT_TOOL_FLAGS', {[Array {[DQ [LIT_CHARS --announce-threads]]} {[DQ [LIT_CHARS "--pure-happens-before=yes"]]} {[DQ [LIT_CHARS "--ignore="][VarSub IGNORE_FILE]]}]})]) ) ) (FunctionDef setup_unknown [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Unknown tool "][\ LIT_ESCAPED_CHAR "\\\""][VarSub TOOL_NAME][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " specified, the result is not guaranteed"]]}) (= scope= flags=0 words=[] bindings=[('DEFAULT_TOOL_FLAGS', {[Array ]})]) ) ) (Com {[LIT_CHARS set]} {[LIT_CHARS -e]}) (If (Com {[LIT_OTHER "["]} {[VarSub #]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "usage: "]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('TOOL_NAME', {[DQ [LIT_CHARS memcheck]]})]) (= scope= flags=0 words=[{[LIT_CHARS -a]}, {[LIT_CHARS DEFAULT_TOOL_FLAGS] [LIT_OTHER "["] [LIT_CHARS 0] [LIT_OTHER "]"]}] bindings=[]) (= scope= flags=0 words=[] bindings=[('TMP_STR', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub 1]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub TMP_STR]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [VarSub 1]]} {[LIT_OTHER "]"]}) (List (= scope= flags=0 words=[] bindings=[('TOOL_NAME', {[DQ [VarSub TMP_STR]]})]) (Com {[LIT_CHARS shift]}) ) ) (If (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS grep]} {[DQ [\ LIT_ESCAPED_CHAR "\\-"][\ LIT_ESCAPED_CHAR "\\-"][LIT_CHARS tool]]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--tool=TOOL must be the first argument"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Case to_match={[VarSub TOOL_NAME]}, pat_word_list=[[{[LIT_CHARS memcheck] [LIT_OTHER "*"]}], [{[LIT_CHARS tsan] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (Com {[LIT_CHARS setup_memcheck]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS setup_tsan]}) (Com {[LIT_CHARS setup_unknown]}) ) (= scope= flags=0 words=[] bindings=[('SUPPRESSIONS', {[DQ [VarSub THISDIR][LIT_CHARS /][VarSub TOOL_NAME][LIT_CHARS /suppressions.txt]]})]) (= scope= flags=0 words=[] bindings=[('CHROME_VALGRIND', {[ComSub (Com {[LIT_CHARS sh]} {[VarSub THISDIR] [LIT_CHARS /locate_valgrind.sh]})]})]) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub CHROME_VALGRIND]]} {[LIT_OTHER "="]} {[DQ ]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Using valgrind binaries from "][VarSub CHROME_VALGRIND]]}) (Com {[LIT_CHARS set]} {[LIT_CHARS -x]}) (= scope= flags=0 words=[] bindings=[('PATH', {[DQ [VarSub CHROME_VALGRIND][LIT_CHARS "/bin:"][VarSub PATH]]})]) (= scope= flags=1 words=[] bindings=[('VALGRIND_LIB', {[DQ [VarSub CHROME_VALGRIND][LIT_CHARS /lib/valgrind]]})]) (= scope= flags=1 words=[] bindings=[('VALGRIND_LIB_INNER', {[DQ [VarSub CHROME_VALGRIND][LIT_CHARS /lib/valgrind]]})]) (Com {[VarSub RUN_COMMAND]} {[LIT_CHARS --trace-children] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --leak-check] [LIT_OTHER "="] [LIT_CHARS yes]} {[LIT_CHARS --suppressions] [LIT_OTHER "="] [DQ [VarSub SUPPRESSIONS]]} {[DQ [VarSub DEFAULT_TOOL_FLAGS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} {[DQ [VarSub @]]} more_env=[('G_SLICE', {[LIT_CHARS always-malloc]}), ('NSS_DISABLE_UNLOAD', {[LIT_CHARS 1]}), ('NSS_DISABLE_ARENA_FREE_LIST', {[LIT_CHARS 1]}), ('G_DEBUG', {[LIT_CHARS fatal_warnings]}), ('GTEST_DEATH_TEST_USE_FORK', {[LIT_CHARS 1]})] ) )