if ! $execs/dwz-for-test --odr -v 2>/dev/null; then exit 77 fi cp $execs/odr-struct 1 for name in aaa bbb ccc; do cnt=$(readelf -wi 1 | grep -c "DW_AT_name.*:.*$name" || true) [ $cnt -eq 2 ] done for name in member_one member_two member_three member_four; do cnt=$(readelf -wi 1 | grep -c "DW_AT_name.*:.*$name" || true) case $name in member_one|member_two) [ $cnt -eq 2 ] ;; member_three|member_four) [ $cnt -eq 1 ] ;; esac done # Check that bbb and ccc are present as DW_AT_declaration readelf -wi 1 | grep -3 DW_AT_declaration > decls grep bbb decls >/dev/null grep ccc decls >/dev/null $execs/dwz-for-test --odr 1 verify-dwarf.sh 1 for name in aaa bbb ccc; do cnt=$(readelf -wi 1 | grep -c "DW_AT_name.*:.*$name" || true) [ $cnt -eq 1 ] done for name in member_one member_two member_three member_four; do cnt=$(readelf -wi 1 | grep -c "DW_AT_name.*:.*$name" || true) [ $cnt -eq 1 ] done # We expect two decls to be removed, for bbb and ccc. readelf -wi 1 | grep -3 DW_AT_declaration > decls || true if grep bbb decls >/dev/null ; then exit 1; fi if grep ccc decls >/dev/null ; then exit 2; fi rm -f 1 decls