From: fche Date: Wed, 7 Mar 2007 15:45:23 +0000 (+0000) Subject: 2007-03-07 Frank Ch. Eigler X-Git-Tag: release-0.5.13~41 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=2302c47e71053a8081b84cae3cf1f53f33b54154;p=systemtap.git 2007-03-07 Frank Ch. Eigler PR 4166. * tapsets.cxx (translate_components): Throw an exception rather then suffer an assertion failure for $ptr[index] expressions. --- diff --git a/ChangeLog b/ChangeLog index ff13b4a6f..45e854f8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-03-07 Frank Ch. Eigler + + PR 4166. + * tapsets.cxx (translate_components): Throw an exception rather + then suffer an assertion failure for $ptr[index] expressions. + 2007-03-05 David Smith * systemtap.spec.in: Made example perl script non-executable so diff --git a/tapsets.cxx b/tapsets.cxx index a156ca7fc..2ca245739 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -1440,7 +1440,9 @@ struct dwflpp case DW_TAG_pointer_type: if (components[i].first == target_symbol::comp_literal_array_index) - goto subscript; + throw semantic_error ("cannot index pointer"); + // XXX: of course, we should support this the same way C does, + // by explicit pointer arithmetic etc. c_translate_pointer (pool, 1, module_bias, die, tail); break; @@ -1448,7 +1450,6 @@ struct dwflpp case DW_TAG_array_type: if (components[i].first == target_symbol::comp_literal_array_index) { - subscript: c_translate_array (pool, 1, module_bias, die, tail, NULL, lex_cast(components[i].second)); ++i;