summaryrefslogtreecommitdiffstats
path: root/elaborate.cxx
diff options
context:
space:
mode:
authorfche <fche>2006-09-05 02:08:52 +0000
committerfche <fche>2006-09-05 02:08:52 +0000
commit9b48ce88f4a8aebb8ad176f4e7fe6bbbe36e1fe7 (patch)
treedcf516db39087ad7e66dcd647cf9a122fa326a4b /elaborate.cxx
parent331edd21f3c4f79fb71456d5550d75657b34b80f (diff)
downloadsystemtap-steved-9b48ce88f4a8aebb8ad176f4e7fe6bbbe36e1fe7.tar.gz
systemtap-steved-9b48ce88f4a8aebb8ad176f4e7fe6bbbe36e1fe7.tar.xz
systemtap-steved-9b48ce88f4a8aebb8ad176f4e7fe6bbbe36e1fe7.zip
2006-09-04 Frank Ch. Eigler <fche@elastic.org>
Improve unresolved target-symbol error messages. * staptree.h (target_symbol): Add new field saved_conversion_error. * elaborate.cxx (typeresolution_info::visit_target_symbol): Throw that if found instead of generic error. * tapsets.cxx (t_v_f_c_v::visit_target_symbol): Set it.
Diffstat (limited to 'elaborate.cxx')
-rw-r--r--elaborate.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/elaborate.cxx b/elaborate.cxx
index 957f5ea5..3fa5dda0 100644
--- a/elaborate.cxx
+++ b/elaborate.cxx
@@ -2173,7 +2173,10 @@ typeresolution_info::visit_target_symbol (target_symbol* e)
// later unused-expression-elimination pass didn't get rid of it
// either. So we have a target symbol that is believed to be of
// genuine use, yet unresolved by the provider.
- throw semantic_error("unresolved target-symbol expression", e->tok);
+ if (e->saved_conversion_error)
+ throw (* (e->saved_conversion_error));
+ else
+ throw semantic_error("unresolved target-symbol expression", e->tok);
}