From 7e41d3dc4003b7e05731173f6b22cc9e1b05f057 Mon Sep 17 00:00:00 2001 From: fche Date: Tue, 19 Dec 2006 22:00:15 +0000 Subject: 2006-12-19 Frank Ch. Eigler PR 3522. * tapsets.cxx (dwflpp::emit_address): Call _stp_module_relocate only once per session. Error message cleanup: duplicate elimination etc. * session.h (saved_errors): Store a set of 'em. (num_errors): Return set size. Remove old numeric field. Update all callers. * elaborate.cxx (systemtap_session::print_errors): Print each encountered message just once. * staptree (semantic_error): Make msg2 writeable. Add a chain field. * tapsets.cxx (*var_expanding*:visit_target_symbol): Set saved semantic_error's chain field. * elaborate.cxx (register_library_aliases, visit_foreach_loop, visit_functioncall, derive_probes): Plop "while: ..." error message prefix/suffix right into the semantic_error message string. * parse.cxx (lexer::scan): Identify erroneous token better in error message for unresolvable $N/@M command line args. * util.h (lex_cast_hex): Use std::hex, not std::ios::hex. 2006-12-19 Frank Ch. Eigler PR 3522. * buildok/twentyfive.stp: New test for static $var access. --- staptree.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'staptree.h') diff --git a/staptree.h b/staptree.h index 8e450e48..d4eea008 100644 --- a/staptree.h +++ b/staptree.h @@ -26,17 +26,18 @@ struct token; // parse.h struct semantic_error: public std::runtime_error { const token* tok1; - const std::string msg2; + std::string msg2; const token* tok2; + semantic_error *chain; ~semantic_error () throw () {} semantic_error (const std::string& msg): - runtime_error (msg), tok1 (0), tok2 (0) {} + runtime_error (msg), tok1 (0), tok2 (0), chain (0) {} semantic_error (const std::string& msg, const token* t1): - runtime_error (msg), tok1 (t1), tok2 (0) {} + runtime_error (msg), tok1 (t1), tok2 (0), chain (0) {} semantic_error (const std::string& msg, const token* t1, const std::string& m2, const token* t2): - runtime_error (msg), tok1 (t1), msg2 (m2), tok2 (t2) {} + runtime_error (msg), tok1 (t1), msg2 (m2), tok2 (t2), chain (0) {} }; // ------------------------------------------------------------------------ -- cgit