diff options
author | Josh Stone <joshua.i.stone@intel.com> | 2008-05-28 17:11:00 -0700 |
---|---|---|
committer | Josh Stone <joshua.i.stone@intel.com> | 2008-05-28 17:11:00 -0700 |
commit | 38fd9c0aede86d99834dcc693370255652230a75 (patch) | |
tree | c8b3ba0f1eedf5968782d8358ec044b7ac52bd51 | |
parent | 90c278bdf839fbbb5485a1c306ac400efcced388 (diff) | |
download | systemtap-steved-38fd9c0aede86d99834dcc693370255652230a75.tar.gz systemtap-steved-38fd9c0aede86d99834dcc693370255652230a75.tar.xz systemtap-steved-38fd9c0aede86d99834dcc693370255652230a75.zip |
Make sure that return statements don't override existing errors.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | translate.cxx | 4 |
2 files changed, 10 insertions, 0 deletions
@@ -1,3 +1,9 @@ +2008-05-28 Josh Stone <joshua.i.stone@intel.com> + + PR 6529 + * translate.cxx (c_unparser::visit_return_statement): Make sure we + notice errors from evaluating return values. + 2008-05-28 David Smith <dsmith@redhat.com> * tapsets.cxx (utrace_derived_probe_group::emit_module_decls): diff --git a/translate.cxx b/translate.cxx index 1782abd1..58fa9182 100644 --- a/translate.cxx +++ b/translate.cxx @@ -2738,6 +2738,10 @@ c_unparser::visit_return_statement (return_statement* s) "vs", s->tok); c_assign ("l->__retvalue", s->value, "return value"); + + // make sure we reports errors from computing s->value + visit_statement (s, 0, false); + o->newline() << "c->last_error = \"\";"; // NB: last_error needs to get reset to NULL in the caller // probe/function |