(command.CommandList children: [ (command.ShFunction name: check_discarded body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [78] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sym) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [82] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:found) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<egrep>} {($ Id.VSub_DollarName '$sym')} {($ Id.VSub_DollarName '$file')}) ) } spids: [87] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$found'))}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <'These local symbols are not discarded in '> ($ Id.VSub_DollarName '$file') <':'> ) } ) (C {<echo>} {(DQ ($ Id.VSub_DollarName '$found'))}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [99 110] ) ] ) ] ) ) (command.ShFunction name: check_non_discarded body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [146] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sym) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [150] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:found) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<egrep>} {($ Id.VSub_DollarName '$sym')} {($ Id.VSub_DollarName '$file')}) ) } spids: [155] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$found'))}) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <'This local symbol is discarded in '> ($ Id.VSub_DollarName '$file') <':'>) } ) (C {<echo>} {(DQ ($ Id.VSub_Number '$2'))}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [167 178] ) ] ) ] ) ) (C {<check_discarded>} {(DQ <discard_locals_test.syms>)} {(DQ <should_be_discarded>)}) (C {<check_non_discarded>} {(DQ <discard_locals_relocatable_test1.syms>)} {(DQ <.LC0>)}) (C {<check_discarded>} {(DQ <discard_locals_relocatable_test1.syms>)} {(DQ <should_be_discarded>)}) (C {<check_non_discarded>} {(DQ <discard_locals_relocatable_test2.syms>)} {(DQ <.LC0>)}) (C {<check_discarded>} {(DQ <discard_locals_relocatable_test2.syms>)} {(DQ <should_be_discarded>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )