(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:verbose) op:Equal rhs:{(false)} spids:[3])] spids: [3] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (-v))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:verbose) op:Equal rhs:{(true)} spids:[26])] spids: [26] ) (C {(shift)}) ] spids: [16777215 23] ) ] spids: [16777215 32] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:build_plat) op:Equal rhs:{(x86)} spids:[35])] spids: [35] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:plat) op:Equal rhs:{(x86)} spids:[38])] spids: [38] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:os) op:Equal rhs:{(linux-gnu)} spids:[41])] spids: [41] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:num_errors) op:Equal rhs:{(0)} spids:[44])] spids: [44] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LIBUNWIND) op: Equal rhs: {(../src/.libs/libunwind.so)} spids: [48] ) ] spids: [48] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LIBUNWIND_GENERIC) op: Equal rhs: {(../src/.libs/libunwind-) (${ VSub_Name plat) (.so)} spids: [51] ) ] spids: [51] ) (FuncDef name: fetch_symtab body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:filename) op: Equal rhs: {($ VSub_Number '$1')} spids: [67] ) ] spids: [67] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-r)} {($ VSub_Name '$filename')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [16777215 85] ) ] spids: [16777215 91] ) (If arms: [ (if_arm cond: [(Sentence child:(C {($ VSub_Name '$verbose')}) terminator:<Op_Semi ';'>)] action: [(C {(echo)} {(DQ ('Checking ') ($ VSub_Name '$filename') (...))})] spids: [16777215 100] ) ] spids: [16777215 112] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:symtab) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(nm)} {(-g)} {($ VSub_Name '$filename')})] ) left_token: <Left_Backtick '`'> spids: [133 139] ) } spids: [132] ) ] spids: [132] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:saved_IFS) op: Equal rhs: {(DQ ($ VSub_Name '$IFS'))} spids: [142] ) ] spids: [142] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(DQ )} spids:[148])] spids: [148] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:undef) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(nm)} {(-g)} {(-u)} {($ VSub_Name '$filename')})] ) left_token: <Left_Backtick '`'> spids: [154 162] ) } spids: [153] ) ] spids: [153] ) (Sentence child: (ForEach iter_name: line iter_words: [{($ VSub_Name '$undef')}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:symtab) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$symtab'))}) (C {(grep)} {(-v)} {(DQ ('^') (${ VSub_Name line)) (EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) } ) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [178 198] ) } spids: [177] ) ] spids: [177] ) ] spids: [174 201] ) spids: [170 172] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(DQ ($ VSub_Name '$saved_IFS'))} spids: [205] ) ] spids: [205] ) ] spids: [64] ) spids: [59 63] ) (FuncDef name: ignore body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sym) op: Equal rhs: {($ VSub_Number '$1')} spids: [221] ) ] spids: [221] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:symtab) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$symtab'))}) (C {(grep)} {(-v)} { (DQ (' ') (${ VSub_Name sym) (EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) ) } ) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [226 246] ) } spids: [225] ) ] spids: [225] ) ] spids: [218] ) spids: [213 217] ) (FuncDef name: match body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sym) op: Equal rhs: {($ VSub_Number '$1')} spids: [259] ) ] spids: [259] ) (If arms: [ (if_arm cond: [ (Sentence child: (C { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$symtab'))}) (C {(grep)} {(-q)} { (DQ (' ') (${ VSub_Name sym) (EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) ) } ) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [265 285] ) } ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:symtab) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$symtab'))}) (C {(grep)} {(-v)} { (DQ (' ') (${ VSub_Name sym) (EscapedLiteralPart token: <Lit_EscapedChar '\\$'> ) ) } ) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [292 312] ) } spids: [291] ) ] spids: [291] ) ] spids: [16777215 288] ) ] else_action: [ (C {(echo)} { (DQ (' ERROR: Symbol ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$sym') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' missing.') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:num_errors) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {($ VSub_Name '$num_errors')} {(Lit_Other '+')} {(1)}) ] ) left_token: <Left_Backtick '`'> spids: [330 338] ) } spids: [329] ) ] spids: [329] ) ] spids: [315 341] ) ] spids: [256] ) spids: [251 255] ) (FuncDef name: filter_misc body: (BraceGroup children: [ (C {(ignore)} {(_DYNAMIC)}) (C {(ignore)} {(_GLOBAL_OFFSET_TABLE_)}) (C {(ignore)} {(__bss_start)}) (C {(ignore)} {(_edata)}) (C {(ignore)} {(_end)}) (C {(ignore)} {(_Uelf32_get_proc_name)}) (C {(ignore)} {(_Uelf32_valid_object)}) (C {(ignore)} {(_Uelf64_get_proc_name)}) (C {(ignore)} {(_Uelf64_valid_object)}) (C {(ignore)} {(_U.) (Lit_Other '*') (debug_level)}) (C {(ignore)} {(ICRT.INTERNAL)}) ] spids: [363] ) spids: [358 362] ) (FuncDef name: check_local_unw_abi body: (BraceGroup children: [ (C {(match)} {(_UL) (${ VSub_Name plat) (_create_addr_space)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_destroy_addr_space)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_get_fpreg)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_get_proc_info)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_get_proc_info_by_ip)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_get_proc_name)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_get_reg)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_get_save_loc)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_init_local)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_init_remote)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_is_signal_frame)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_handle_signal_frame)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_local_addr_space)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_resume)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_set_caching_policy)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_set_reg)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_set_fpreg)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_step)}) (C {(match)} {(_U) (${ VSub_Name plat) (_flush_cache)}) (C {(match)} {(_U) (${ VSub_Name plat) (_get_accessors)}) (C {(match)} {(_U) (${ VSub_Name plat) (_getcontext)}) (C {(match)} {(_U) (${ VSub_Name plat) (_regname)}) (C {(match)} {(_U) (${ VSub_Name plat) (_strerror)}) (C {(match)} {(_U_dyn_cancel)}) (C {(match)} {(_U_dyn_info_list_addr)}) (C {(match)} {(_U_dyn_register)}) (C {(match)} {(unw_backtrace)}) (C {(match)} {(backtrace)}) (Case to_match: {(${ VSub_Name plat)} arms: [ (case_arm pat_list: [{(hppa)}] action: [ (C {(match)} {(_UL) (${ VSub_Name plat) (_dwarf_search_unwind_table)}) (C {(match)} {(_U) (${ VSub_Name plat) (_get_elf_image)}) (C {(match)} {(_U) (${ VSub_Name plat) (_setcontext)}) ] spids: [681 682 712 16777215] ) (case_arm pat_list: [{(ia64)}] action: [ (C {(match)} {(_UL) (${ VSub_Name plat) (_search_unwind_table)}) (C {(match)} {(_U) (${ VSub_Name plat) (_get_elf_image)}) ] spids: [715 716 737 16777215] ) (case_arm pat_list: [{(x86)}] action: [ (C {(match)} {(_U) (${ VSub_Name plat) (_get_elf_image)}) (C {(match)} {(_U) (${ VSub_Name plat) (_is_fpreg)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_dwarf_search_unwind_table)}) ] spids: [740 741 771 16777215] ) (case_arm pat_list: [{(x86_64)}] action: [ (C {(match)} {(_U) (${ VSub_Name plat) (_get_elf_image)}) (C {(match)} {(_U) (${ VSub_Name plat) (_is_fpreg)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_dwarf_search_unwind_table)}) (C {(match)} {(_U) (${ VSub_Name plat) (_setcontext)}) ] spids: [774 775 814 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(match)} {(_U) (${ VSub_Name plat) (_is_fpreg)}) (C {(match)} {(_UL) (${ VSub_Name plat) (_dwarf_search_unwind_table)}) ] spids: [817 818 839 16777215] ) ] spids: [672 678 842] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(xno)} {(Lit_Other '=')} {(xyes)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(match)} {(_UL) (${ VSub_Name plat) (_dwarf_find_debug_frame)})] spids: [16777215 859] ) ] spids: [16777215 871] ) ] spids: [433] ) spids: [428 432] ) (FuncDef name: check_generic_unw_abi body: (BraceGroup children: [ (C {(match)} {(_U) (${ VSub_Name plat) (_create_addr_space)}) (C {(match)} {(_U) (${ VSub_Name plat) (_destroy_addr_space)}) (C {(match)} {(_U) (${ VSub_Name plat) (_flush_cache)}) (C {(match)} {(_U) (${ VSub_Name plat) (_get_accessors)}) (C {(match)} {(_U) (${ VSub_Name plat) (_get_fpreg)}) (C {(match)} {(_U) (${ VSub_Name plat) (_get_proc_info)}) (C {(match)} {(_U) (${ VSub_Name plat) (_get_proc_info_by_ip)}) (C {(match)} {(_U) (${ VSub_Name plat) (_get_proc_name)}) (C {(match)} {(_U) (${ VSub_Name plat) (_get_reg)}) (C {(match)} {(_U) (${ VSub_Name plat) (_get_save_loc)}) (C {(match)} {(_U) (${ VSub_Name plat) (_init_local)}) (C {(match)} {(_U) (${ VSub_Name plat) (_init_remote)}) (C {(match)} {(_U) (${ VSub_Name plat) (_is_signal_frame)}) (C {(match)} {(_U) (${ VSub_Name plat) (_handle_signal_frame)}) (C {(match)} {(_U) (${ VSub_Name plat) (_local_addr_space)}) (C {(match)} {(_U) (${ VSub_Name plat) (_regname)}) (C {(match)} {(_U) (${ VSub_Name plat) (_resume)}) (C {(match)} {(_U) (${ VSub_Name plat) (_set_caching_policy)}) (C {(match)} {(_U) (${ VSub_Name plat) (_set_fpreg)}) (C {(match)} {(_U) (${ VSub_Name plat) (_set_reg)}) (C {(match)} {(_U) (${ VSub_Name plat) (_step)}) (C {(match)} {(_U) (${ VSub_Name plat) (_strerror)}) (Case to_match: {(${ VSub_Name plat)} arms: [ (case_arm pat_list: [{(hppa)}] action: [ (C {(match)} {(_U) (${ VSub_Name plat) (_dwarf_search_unwind_table)}) (C {(match)} {(_U) (${ VSub_Name plat) (_get_elf_image)}) ] spids: [1093 1094 1115 16777215] ) (case_arm pat_list: [{(ia64)}] action: [ (C {(match)} {(_U) (${ VSub_Name plat) (_search_unwind_table)}) (C {(match)} {(_U) (${ VSub_Name plat) (_find_dyn_list)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$plat')} {(Lit_Other '=')} {($ VSub_Name '$build_plat')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(match)} {(_U) (${ VSub_Name plat) (_get_elf_image)}) (Case to_match: {($ VSub_Name '$os')} arms: [ (case_arm pat_list: [{(linux) (Lit_Other '*')}] action: [(C {(match)} {(_U) (${ VSub_Name plat) (_get_kernel_table)})] spids: [1172 1174 1186 16777215] ) ] spids: [1165 1169 1189] ) ] spids: [16777215 1153] ) ] spids: [16777215 1192] ) ] spids: [1118 1119 1195 16777215] ) (case_arm pat_list: [{(x86)}] action: [ (C {(match)} {(_U) (${ VSub_Name plat) (_get_elf_image)}) (C {(match)} {(_U) (${ VSub_Name plat) (_is_fpreg)}) (C {(match)} {(_U) (${ VSub_Name plat) (_dwarf_search_unwind_table)}) ] spids: [1198 1199 1229 16777215] ) (case_arm pat_list: [{(x86_64)}] action: [ (C {(match)} {(_U) (${ VSub_Name plat) (_get_elf_image)}) (C {(match)} {(_U) (${ VSub_Name plat) (_is_fpreg)}) (C {(match)} {(_U) (${ VSub_Name plat) (_dwarf_search_unwind_table)}) ] spids: [1232 1233 1263 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (C {(match)} {(_U) (${ VSub_Name plat) (_is_fpreg)}) (C {(match)} {(_U) (${ VSub_Name plat) (_dwarf_search_unwind_table)}) ] spids: [1266 1267 1288 16777215] ) ] spids: [1084 1090 1291] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(xno)} {(Lit_Other '=')} {(xyes)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(match)} {(_U) (${ VSub_Name plat) (_dwarf_find_debug_frame)})] spids: [16777215 1308] ) ] spids: [16777215 1320] ) ] spids: [882] ) spids: [877 881] ) (FuncDef name: check_cxx_abi body: (BraceGroup children: [ (C {(match)} {(_Unwind_Backtrace)}) (C {(match)} {(_Unwind_DeleteException)}) (C {(match)} {(_Unwind_FindEnclosingFunction)}) (C {(match)} {(_Unwind_ForcedUnwind)}) (C {(match)} {(_Unwind_GetBSP)}) (C {(match)} {(_Unwind_GetCFA)}) (C {(match)} {(_Unwind_GetDataRelBase)}) (C {(match)} {(_Unwind_GetGR)}) (C {(match)} {(_Unwind_GetIP)}) (C {(match)} {(_Unwind_GetIPInfo)}) (C {(match)} {(_Unwind_GetLanguageSpecificData)}) (C {(match)} {(_Unwind_GetRegionStart)}) (C {(match)} {(_Unwind_GetTextRelBase)}) (C {(match)} {(_Unwind_RaiseException)}) (C {(match)} {(_Unwind_Resume)}) (C {(match)} {(_Unwind_Resume_or_Rethrow)}) (C {(match)} {(_Unwind_SetGR)}) (C {(match)} {(_Unwind_SetIP)}) (C {(match)} {(__libunwind_Unwind_Backtrace)}) (C {(match)} {(__libunwind_Unwind_DeleteException)}) (C {(match)} {(__libunwind_Unwind_FindEnclosingFunction)}) (C {(match)} {(__libunwind_Unwind_ForcedUnwind)}) (C {(match)} {(__libunwind_Unwind_GetBSP)}) (C {(match)} {(__libunwind_Unwind_GetCFA)}) (C {(match)} {(__libunwind_Unwind_GetDataRelBase)}) (C {(match)} {(__libunwind_Unwind_GetGR)}) (C {(match)} {(__libunwind_Unwind_GetIP)}) (C {(match)} {(__libunwind_Unwind_GetIPInfo)}) (C {(match)} {(__libunwind_Unwind_GetLanguageSpecificData)}) (C {(match)} {(__libunwind_Unwind_GetRegionStart)}) (C {(match)} {(__libunwind_Unwind_GetTextRelBase)}) (C {(match)} {(__libunwind_Unwind_RaiseException)}) (C {(match)} {(__libunwind_Unwind_Resume)}) (C {(match)} {(__libunwind_Unwind_Resume_or_Rethrow)}) (C {(match)} {(__libunwind_Unwind_SetGR)}) (C {(match)} {(__libunwind_Unwind_SetIP)}) (Case to_match: {($ VSub_Name '$os')} arms: [ (case_arm pat_list: [{(linux) (Lit_Other '*')}] action: [(C {(match)} {(_ReadSLEB)}) (C {(match)} {(_ReadULEB)})] spids: [1520 1522 1539 16777215] ) ] spids: [1513 1517 1542] ) ] spids: [1330] ) spids: [1325 1329] ) (FuncDef name: check_empty body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$symtab'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-e)} { (DQ (' ERROR: Extraneous symbols:') (Lit_Other '\\') (n) ($ VSub_Name '$symtab') ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:num_errors) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(expr)} {($ VSub_Name '$num_errors')} {(Lit_Other '+')} {(1)}) ] ) left_token: <Left_Backtick '`'> spids: [1584 1592] ) } spids: [1583] ) ] spids: [1583] ) ] spids: [16777215 1568] ) ] spids: [16777215 1595] ) ] spids: [1552] ) spids: [1547 1551] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$plat')} {(Lit_Other '=')} {($ VSub_Name '$build_plat')} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(fetch_symtab)} {($ VSub_Name '$LIBUNWIND')}) (C {(filter_misc)}) (C {(check_local_unw_abi)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(xno)} {(Lit_Other '=')} {(xyes)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(check_cxx_abi)})] spids: [16777215 1640] ) ] spids: [16777215 1646] ) (C {(check_empty)}) ] spids: [16777215 1613] ) ] spids: [16777215 1651] ) (C {(fetch_symtab)} {($ VSub_Name '$LIBUNWIND_GENERIC')}) (C {(filter_misc)}) (C {(check_generic_unw_abi)}) (C {(check_empty)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$num_errors')} {(-gt)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('FAILURE: Detected ') ($ VSub_Name '$num_errors') (' errors'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 1678] ) ] spids: [16777215 1694] ) (If arms: [ (if_arm cond: [(Sentence child:(C {($ VSub_Name '$verbose')}) terminator:<Op_Semi ';'>)] action: [(C {(echo)} {(DQ (' SUCCESS: all checks passed'))})] spids: [16777215 1702] ) ] spids: [16777215 1711] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )