(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: [-1 23] ) ] spids: [-1 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: [-1 85] ) ] spids: [-1 91] ) (If arms: [ (if_arm cond: [(Sentence child:(C {($ VSub_Name "$verbose")}) terminator:<Op_Semi ";">)] action: [(C {(echo)} {(DQ ("Checking ") ($ VSub_Name "$filename") (...))})] spids: [-1 100] ) ] spids: [-1 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: False 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: False ) ] ) 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: False ) ] ) 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: False ) ] ) 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: False ) ] ) left_token: <Left_Backtick "`"> spids: [292 312] ) } spids: [291] ) ] spids: [291] ) ] spids: [-1 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 -1] ) (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 -1] ) (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 -1] ) (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 -1] ) (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 -1] ) ] 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: [-1 859] ) ] spids: [-1 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 -1] ) (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 -1] ) ] spids: [1165 1169 1189] ) ] spids: [-1 1153] ) ] spids: [-1 1192] ) ] spids: [1118 1119 1195 -1] ) (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 -1] ) (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 -1] ) (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 -1] ) ] 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: [-1 1308] ) ] spids: [-1 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 -1] ) ] 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:") (EscapedLiteralPart token:<Lit_EscapedChar "\\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: [1583 1591] ) } spids: [1582] ) ] spids: [1582] ) ] spids: [-1 1568] ) ] spids: [-1 1594] ) ] 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: [-1 1639] ) ] spids: [-1 1645] ) (C {(check_empty)}) ] spids: [-1 1612] ) ] spids: [-1 1650] ) (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"))}) (C {(exit)} {(1)}) ] spids: [-1 1677] ) ] spids: [-1 1693] ) (If arms: [ (if_arm cond: [(Sentence child:(C {($ VSub_Name "$verbose")}) terminator:<Op_Semi ";">)] action: [(C {(echo)} {(DQ (" SUCCESS: all checks passed"))})] spids: [-1 1701] ) ] spids: [-1 1710] ) (C {(exit)} {(0)}) ] )