summaryrefslogtreecommitdiffstats
path: root/dwflpp.h
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2009-09-03 11:32:59 -0700
committerJosh Stone <jistone@redhat.com>2009-09-03 11:32:59 -0700
commit7fdd3e2c61874abd631de5038d846dffb6f5bc5f (patch)
tree7c24c2e3bc361032b46ef4e119b5378ed7187378 /dwflpp.h
parentb74789646bfe59131327716357c8b7c1521fa14a (diff)
downloadsystemtap-steved-7fdd3e2c61874abd631de5038d846dffb6f5bc5f.tar.gz
systemtap-steved-7fdd3e2c61874abd631de5038d846dffb6f5bc5f.tar.xz
systemtap-steved-7fdd3e2c61874abd631de5038d846dffb6f5bc5f.zip
PR10573: Squash duplicate inline instances
In C++, identical functions included in multiple CUs will get merged at link time into a single instance. We need to make sure that inlines within those merged functions are not probed multiple times. * tapsets.cxx (inline_instance_info::operator<): Used for set support. (dwarf_query::handle_query_module): Clear inline_dupes on each module. (query_dwarf_inline_instance): Squash this inline instance if it's already in the inline_dupes set.
Diffstat (limited to 'dwflpp.h')
-rw-r--r--dwflpp.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/dwflpp.h b/dwflpp.h
index 431f3c4b..34531071 100644
--- a/dwflpp.h
+++ b/dwflpp.h
@@ -139,6 +139,7 @@ struct inline_instance_info
{
std::memset(&die, 0, sizeof(die));
}
+ bool operator<(const inline_instance_info& other) const;
std::string name;
char const * decl_file;
int decl_line;