diff options
author | fche <fche> | 2006-12-19 22:00:15 +0000 |
---|---|---|
committer | fche <fche> | 2006-12-19 22:00:15 +0000 |
commit | 7e41d3dc4003b7e05731173f6b22cc9e1b05f057 (patch) | |
tree | f552fed50ac5d02ba2e56b588f73ef0dd48382b8 /util.h | |
parent | 642da0daffeeecbcfa1aa78b6d95b5cfa90827d4 (diff) | |
download | systemtap-steved-7e41d3dc4003b7e05731173f6b22cc9e1b05f057.tar.gz systemtap-steved-7e41d3dc4003b7e05731173f6b22cc9e1b05f057.tar.xz systemtap-steved-7e41d3dc4003b7e05731173f6b22cc9e1b05f057.zip |
2006-12-19 Frank Ch. Eigler <fche@redhat.com>
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 <fche@redhat.com>
PR 3522.
* buildok/twentyfive.stp: New test for static $var access.
Diffstat (limited to 'util.h')
-rw-r--r-- | util.h | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -31,6 +31,7 @@ inline OUT lex_cast(IN const & in) { std::stringstream ss; OUT out; + // NB: ss >> string out assumes that "in" renders to one word if (!(ss << in && ss >> out)) throw std::runtime_error("bad lexical cast"); return out; @@ -43,7 +44,8 @@ lex_cast_hex(IN const & in) { std::stringstream ss; OUT out; - if (!(ss << std::ios::hex << std::ios::showbase << in && ss >> out)) + // NB: ss >> string out assumes that "in" renders to one word + if (!(ss << "0x" << std::hex << in && ss >> out)) throw std::runtime_error("bad lexical cast"); return out; } @@ -59,7 +61,7 @@ lex_cast_qstring(IN const & in) std::string out, out2; if (!(ss << in)) throw std::runtime_error("bad lexical cast"); - out = ss.str(); + out = ss.str(); // "in" is expected to render to more than one word out2 += '"'; for (unsigned i=0; i<out.length(); i++) { |