From 7f17af5c9ace193eef48246bcadf42ae9650de67 Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 10 Aug 2009 14:48:39 -0700 Subject: PR10499: Integrate attributes in dwarf_decl_file/line Elfutils prior to 0.143 didn't use attr_integrate when looking up the decl_file or decl_line, so the attributes would sometimes be missed. For those old versions, we define custom implementations to do the integration. * dwarf_wrappers.cxx (dwarf_decl_file_integrate): New. (dwarf_decl_line_integrate): New. * dwarf_wrappers.h: Add macros to redirect calls to the above functions. * dwflpp.cxx (dwflpp::iterate_over_labels): Replace a manual attribute lookup that is the same as dwarf_decl_line. --- dwarf_wrappers.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'dwarf_wrappers.h') diff --git a/dwarf_wrappers.h b/dwarf_wrappers.h index 9233fc1d..54ab8fd4 100644 --- a/dwarf_wrappers.h +++ b/dwarf_wrappers.h @@ -103,6 +103,21 @@ public: }; +#if !_ELFUTILS_PREREQ(0, 143) +// Elfutils prior to 0.143 didn't use attr_integrate when looking up the +// decl_file or decl_line, so the attributes would sometimes be missed. For +// those old versions, we define custom implementations to do the integration. + +const char *dwarf_decl_file_integrate (Dwarf_Die *die); +#define dwarf_decl_file dwarf_decl_file_integrate + +int dwarf_decl_line_integrate (Dwarf_Die *die, int *linep) + __nonnull_attribute__ (2); +#define dwarf_decl_line dwarf_decl_line_integrate + +#endif // !_ELFUTILS_PREREQ(0, 143) + + #endif /* vim: set sw=2 ts=8 cino=>4,n-2,{2,^-2,t0,(0,u0,w1,M1 : */ -- cgit