| 2630 | } |
| 2631 | |
| 2632 | static Dwarf_Die get_referenced_die(Dwarf_Debug dwarf, Dwarf_Die die, Dwarf_Half attr, bool global) |
| 2633 | { |
| 2634 | Dwarf_Error error = DW_DLE_NE; |
| 2635 | Dwarf_Attribute attr_mem; |
| 2636 | |
| 2637 | Dwarf_Die found_die = NULL; |
| 2638 | if (dwarf_attr(die, attr, &attr_mem, &error) == DW_DLV_OK) { |
| 2639 | Dwarf_Off offset; |
| 2640 | int result = 0; |
| 2641 | if (global) { |
| 2642 | result = dwarf_global_formref(attr_mem, &offset, &error); |
| 2643 | } |
| 2644 | else { |
| 2645 | result = dwarf_formref(attr_mem, &offset, &error); |
| 2646 | } |
| 2647 | |
| 2648 | if (result == DW_DLV_OK) { |
| 2649 | if (dwarf_offdie(dwarf, offset, &found_die, &error) != DW_DLV_OK) { |
| 2650 | found_die = NULL; |
| 2651 | } |
| 2652 | } |
| 2653 | dwarf_dealloc(dwarf, attr_mem, DW_DLA_ATTR); |
| 2654 | } |
| 2655 | return found_die; |
| 2656 | } |
| 2657 | |
| 2658 | static std::string get_referenced_die_name(Dwarf_Debug dwarf, Dwarf_Die die, Dwarf_Half attr, bool global) |
| 2659 | { |
no outgoing calls
no test coverage detected