summaryrefslogtreecommitdiff
path: root/dwarflint/check_debug_line.cc
diff options
context:
space:
mode:
authorPetr Machata <pmachata@redhat.com>2010-08-25 19:16:25 +0200
committerPetr Machata <pmachata@redhat.com>2010-08-25 19:16:25 +0200
commit06dbce2ff8bc1c012807e180e52cb861da907605 (patch)
tree5e004e1e25328ea66b5860a62b20cb6b95829b7f /dwarflint/check_debug_line.cc
parent4c04b48b31a48949425f0ba931bdd2162ccadfde (diff)
downloadelfutils-06dbce2ff8bc1c012807e180e52cb861da907605.tar.gz
Each check now has a name and group membership
- whether a check is performed can now be configured via a command line argument --check - there's no explicit dependency resolution. While checks are really organized in a dependency graph, only the path from the check under investigation to its dependant is known at any given time. So with command line like --check=-X,+Y where Y depends on X, the scheduler may first reject X several times, just to perform it anyway when it later turns out that requested test Y depends on it.
Diffstat (limited to 'dwarflint/check_debug_line.cc')
-rw-r--r--dwarflint/check_debug_line.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/dwarflint/check_debug_line.cc b/dwarflint/check_debug_line.cc
index 8a4decea..406e18eb 100644
--- a/dwarflint/check_debug_line.cc
+++ b/dwarflint/check_debug_line.cc
@@ -56,7 +56,12 @@ namespace
typedef std::vector<file_t> files_t;
public:
- explicit check_debug_line (dwarflint &lint);
+ static checkdescriptor descriptor () {
+ static checkdescriptor cd ("check_debug_line @low");
+ return cd;
+ }
+
+ explicit check_debug_line (checkstack &stack, dwarflint &lint);
/* Directory index. */
bool read_directory_index (include_directories_t &include_directories,
@@ -111,10 +116,10 @@ namespace
reg<check_debug_line> reg_debug_line;
}
-check_debug_line::check_debug_line (dwarflint &lint)
- : _m_sec (lint.check (_m_sec))
+check_debug_line::check_debug_line (checkstack &stack, dwarflint &lint)
+ : _m_sec (lint.check (stack, _m_sec))
{
- check_debug_info *cus = lint.toplev_check<check_debug_info> ();
+ check_debug_info *cus = lint.toplev_check<check_debug_info> (stack);
addr_record line_tables;
WIPE (line_tables);
@@ -597,7 +602,7 @@ check_debug_line::check_debug_line (dwarflint &lint)
throw check_base::failed ();
check_debug_info *info = NULL;
- info = lint.toplev_check (info);
+ info = lint.toplev_check (stack, info);
if (info != NULL)
for (std::vector<cu>::iterator it = info->cus.begin ();
it != info->cus.end (); ++it)