summaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog66
1 files changed, 66 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 5cbf0ed3..281f5b82 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,69 @@
+2005-11-13 Graydon Hoare <graydon@redhat.com>
+
+ * staptree.h (struct indexable): New struct.
+ (classify_indexable): New function.
+ (classify_const_indexable): New function.
+ (struct symbol): Implement indexable.
+ (struct arrayindex): Take indexable as base.
+ (struct foreach_loop): Take indexable as base.
+ (struct print_format): New struct.
+ (enum stat_component_type): New enum.
+ (struct stat_op): New struct.
+ (enum historgram_type): New enum.
+ (struct hist_op): New struct.
+ (struct visitor)
+ (struct traversing_visitor)
+ (struct throwing_visitor)
+ (struct deep_copy_visitor): Add new visitor methods.
+ (require): Specialize for indexable*.
+
+ * staptree.cxx (print_format::*)
+ (stat_op::*)
+ (hist_op::*)
+ (indexable::*)
+ (traversing_visitor::*)
+ (throwing_visitor::*)
+ (deep_copy_visitor::*)
+ (classify_indexable)
+ (classify_const_indexable): Implement
+ (deep_copy_visitor::*): Update to use indexables.
+
+ * parse.h (parser::parse_indexable): New method.
+ (parser::parse_hist_op_or_bare_name): New method.
+
+ * parse.cxx (lexer::scan): Accept @ in identifiers.
+ (parser::parse_array_in)
+ (parser::parse_foreach_loop): Call parse_indexable.
+ (parser::parse_hist_op_or_bare_name): Implement.
+ (parser::parse_indexable): Implement.
+ (parser::parse_symbol): Accept printf, stat_ops, hist_ops.
+
+ * elaborate.h (struct typeresolution_info): Add methods for
+ visiting print_format, stat_op, hist_op.
+
+ * elaborate.cxx (symbol_fetcher): New class.
+ (get_symbol_within_expression): New function.
+ (get_symbol_within_indexable): New function.
+ (mutated_var_collector): Replace mutated_map_collector.
+ (no_var_mutation_during_iteration_check): Replace
+ no_map_mutation_during_iteration_check.
+ (semantic_pass_vars): Replace semantic_pass_maps.
+ (semantic_pass): Update call accordingly.
+ (symresolution_info::*) Add new visitors, teach about indexables
+ (typeresolution_info::*) Likewise.
+
+ * translate.cxx
+ (c_unparser::getiter): Take symbol, not foreach_loop.
+ (c_unparser::*) Add new visitors, teach about indexables.
+ (c_tmpcounter::*)
+ (delete_statement_operand_visitor::visit_arrayindex)
+ (c_tmpcounter_assignment::*)
+ (c_unparser_assignment::*): Likewise.
+ (hist_op_downcaster): New struct.
+ (expression_is_hist_op): New function.
+
+ * testsuite/buildok/printf.stp: New test for print_format.
+
2005-11-10 Frank Ch. Eigler <fche@elastic.org>
* translate.cxx (c_unparser::visit_array_in, visit_arrayindex):