summaryrefslogtreecommitdiffstats
path: root/translate.cxx
Commit message (Collapse)AuthorAgeFilesLines
* 2005-11-24 Frank Ch. Eigler <fche@redhat.com>fche2005-11-241-4/+19
| | | | | | | PR 1917 * translate.cxx (emit_common_header, emit_module_init, emit_module_exit): Switch context array to per-cpu kmalloc variant. * tapsets (*::emit_probe_entires): Use per_cpu_ptr() for my context.
* 2005-11-23 Graydon Hoare <graydon@redhat.com>graydon2005-11-241-50/+270
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * elaborate.h (get_symbol_within_expression): Make visible. * elaborate.cxx (get_symbol_within_expression): Make non-static. (stat_decl_collector): New struct. (semantic_pass_stats): New semantic pass. (semantic_pass): Call it. (semantic_pass_symbols): Remove collection of statistic_decls from files. (visit_stat_op): Only fail if inferred type is not pe_long. * parse.cxx (parser::parse): Don't pass per-file statistic_decl into parse_global. (parser::parse_global): Don't parse global statistic_decls, they're obsolete. * parse.hh (parser::parse_global): Adjust signature to match. * session.h (statistic_decl::operator==): New method. * staptree.h (print_format::is_empty): New method. (stapfile::stat_decls): Remove field. * staptree.cxx (string_to_components): Fix bugs in format-string parser. * translate.cxx (var): Make private fields protected. (var::init): Support HIST_NONE stats. (aggvar): New struct. (mapvar::is_parallel): New method. (mapvar::call_prefix): Use it. (mapvar::calculate_aggregate): New method. (mapvar::fetch_existing_aggregate): New method. (mapvar::get): Support pe_stats. (mapvar::init): Use is_parallel(), and support HIST_NONE. (itervar::itervar): Only fault on pe_unknown. (itervar::start): Use mapvar::is_parallel and mapvar::fetch_existing_aggregate. (emit_map_type_instantiations): Include alloc.c before pmap-gen.c. Include pmap-gen.c for pe_stats maps. (c_unparser::gensym_aggregate): New method. (c_unparser::visit_foreach_loop): Handle mapvar::is_parallel case. (arrayindex_downcaster): New struct. (expression_is_arrayindex): New function. (c_tmpcounter::visit_stat_op): New method. (c_unparser::visit_stat_op): Implement. (c_unparser::visit_hist_op): Add commentary, still not implemented. * testsuite/buildok/stat_{insert,extract}.stp: New tests. * testsuite/semok/ten.stp: Correct for changes to global declarations. * testsuite/semko/*.stp: Likewise.
* 2005-11-13 Graydon Hoare <graydon@redhat.com>graydon2005-11-141-230/+561
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>fche2005-11-101-4/+2
| | | | | * translate.cxx (c_unparser::visit_array_in, visit_arrayindex): Finish adapting to PR 1275 by switching back to read locks.
* 2005-11-09 Martin Hunt <hunt@redhat.com>hunt2005-11-091-2/+2
| | | | | * translate.cxx: New API uses HIST_LOG and HIST_LINEAR instead of HSTAT_LOG and HSTAT_LINEAR.
* 2005-11-08 Frank Ch. Eigler <fche@redhat.com>fche2005-11-081-8/+11
| | | | | | * translate.cxx (c_unparser::visit_foreach_loop): With PR 1275 done, add back read lock around foreach loop. Add a write lock around preceding sort operation. Leave a race condition window. :-(
* 2005-11-08 Frank Ch. Eigler <fche@redhat.com>fche2005-11-081-1/+1
| | | | * translate.cxx (mapvar::exists): Correct some more.
* 2005-11-08 Frank Ch. Eigler <fche@redhat.com>fche2005-11-081-1/+1
| | | | | Patch from "Mao, Bibo" <bibo.mao@intel.com> * translate.cxx (mapvar::exists): Correct 64-bit type mismatch.
* 2005-11-04 Frank Ch. Eigler <fche@redhat.com>fche2005-11-041-2/+8
| | | | | | | | | * tapsets.cxx (dwarf_derived_probe::emit_registrations): Add possible kprobe address prechecking logic. Set kretprobes maxactive to zero. * translate.cxx (emit_module_init): Set a more helpful default probe_point value for use in registration errors. Exit properly after registration failure of probe #0.
* 2005-11-01 Graydon Hoare <graydon@redhat.com>graydon2005-11-011-86/+92
| | | | | | | | | | * translate.cxx (c_unparser::collect_map_index_types) (c_unparser::emit_map_type_instantiations) (c_unparser::visit_arrayindex) (c_unparser::visit_array_in) (delete_statement_operand_visitor::visit_arrayindex) (c_unparser_assignment::visit_arrayindex) (mapvar::*): Update to new runtime map API.
* IA64 Runtime support patches. With this in placeaskeshav2005-10-281-0/+2
| | | | | | | Systemtap should now be able to build on Ia64. Includes supports for - function probes, return probes, function parameter access and dumping stack backtrace. Added by Anil S Keshavamurthy <Anil.s.keshavamurthy@intel.com>
* 2005-10-20 Graydon Hoare <graydon@redhat.com>graydon2005-10-201-42/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR 917 (incomplete) * staptree.h (struct statistic_decl): New struct. (stapfile::stat_decls): New member. * parse.h, parse.cxx (parser::expect_known): Fix typo. (parser::expect_number): New method. (parser::parse_global): Parse global statistic_decls. * elaborate.h (systemtap_session::stat_decls): New member. * elaborate.cxx (semantic_pass_symbols): Copy per-file stat_decls to session-wide. (typeresolution_info::visit_assignment): Detect some semantic stats errors in type resolution pass. * translate.cxx (var::sd): New private member. (var::var): Initialize it. (var::sdecl): New accessor. (var::init): Handle stats values. (mapvar::mapvar): Pass through statistic_decl to var ctor. (mapvar::get): Test for long explicitly. (mapvar::set): Likewise. (mapvar::init): Handle stats values. (c_unparser::emit_common_header): Remove typedef of stats_t, include stat.c when necessary. (mapvar::key_typename): Typo. (c_unparser::emit_map_type_instantiations): Thinko: value_typename not key_typename. (c_unparser::c_typename): Implementation typename is "Stat", not "stats_t". (c_unparser::c_assign): Fix bad error message. (c_unparser_assignment::c_assignop): Handle operator <<<. (c_unparser::getvar): Feed session statistic_decl into var. (c_unparser::getmap): Likewise. (c_unparser::visit_assignment): Handle operator <<<. (c_tmpcounter_assignment::visit_symbol): Derive type from rvalue when present. (c_unparser_assignment::visit_symbol) (c_tmpcounter_assignment::visit_arrayindex) (c_unparser_assignment::load_map_indices): Likewise. (c_unparser::visit_arrayindex): Likewise, and Prohibit statistic rvalues. (c_unparser_assignment::visit_arrayindex): Handle operator <<<. * testsuite/semko/twentyfour.stp: * testsuite/semko/twentyfive.stp: * testsuite/semko/twentysix.stp: * testsuite/semko/twentyseven.stp: * testsuite/semko/twentyeight.stp: * testsuite/semko/twentynine.stp: * testsuite/semko/thirty.stp: * testsuite/semko/thirtyone.stp: New tests for prohibited statistic contexts. * testsuite/buildok/twentytwo.stp: New test for legal statistic contexts.
* 2005-10-18 Frank Ch. Eigler <fche@redhat.com>fche2005-10-181-3/+3
| | | | | | | PR 1477. * main.cxx (main): Set PATH and LC_ALL, so * buildrun.cxx (compile_pass, run_pass): ... and ... * translate.cxx (emit_symbol_data): ... don't have to.
* 2005-10-18 Frank Ch. Eigler <fche@elastic.org>fche2005-10-181-4/+5
| | | | | | | | PR 1482 cont'd. * translator.cxx (emit_module_init): Set aside a variable for detailed probe point id. * tapsets.cxx (emit_registrations): Use it. (add_probe_point): Correct synthesized probe-point typo.
* 2005-10-10 Frank Ch. Eigler <fche@elastic.org>fche2005-10-101-9/+9
| | | | | | | | | | | | PR 1456. * translate.cxx (c_unparser_assignment): Rename "pre" field to "post", add blurb to clarify polarity. (visit_pre/post_crement): Flip passed flag value. 2005-10-10 Frank Ch. Eigler <fche@elastic.org> PR 1456. * systemtap.samples/arith.stp: Add pre/post-crement tests.
* 2005-10-07 Frank Ch. Eigler <fche@elastic.org>fche2005-10-071-0/+6
| | | | | | | | | | | | | | | | PR 1366. * staptree.h (foreach_loop): Add sort_column, sort_direction fields. * parse.cxx (parse_foreach_loop): Parse "+"/"-" suffix operators. * stap.1.in, stapex.5.in: Document them. * staptree.cxx (foreach_loop print, copy): Propagate them. * translate.cxx (visit_foreach_loop): Support them. * testsuite/parseok/fifteen.stp, parseko/thirteen.stp, buildok/twentyone.stp: Test them. 2005-10-07 Frank Ch. Eigler <fche@elastic.org> PR 1366. * systemtap.samples/primes.*: Sort foreach gratuitiously.
* 2005-10-06 Frank Ch. Eigler <fche@elastic.org>fche2005-10-061-0/+3
| | | | | | * stap.1.in: Document -b/-s options. * main.cxx (usage): Clarify -b/-s blurbs. * translator.cxx (translate_pass): Handle bulk_mode here instead.
* 2005-10-06 Frank Ch. Eigler <fche@elastic.org>fche2005-10-061-2/+70
| | | | | | | | | | | | | | | | | | PR 1332. * translate.cxx (emit_symbol_data): New function to transcribe a processed address->symbol lookup table, based upon /proc/kallsyms. 2005-10-06 Frank Ch. Eigler <fche@elastic.org> PR 1332. * sym.h: New file to declare explicit symbol table struct. * runtime.h (_stp_kallsyms_lookup_tabled): Use it if available. * sym.c (_stp_symbol_sprint): HAS_LOOKUP mooted. 2005-10-06 Frank Ch. Eigler <fche@elastic.org> PR 1132. * systemtap.samples/symbols.*: New test.
* 2005-09-28 Frank Ch. Eigler <fche@elastic.org>fche2005-09-281-2/+11
| | | | | | | | | | | | | | | | PR 1182. * main.cxx (main): Support -D macro-setting option. * stap.1.in: Document it and related macros. * buildrun.cxx (compile_pass): Emit macro definitions. * translate.cxx (translate_pass): Guard limit macros with #ifdef. Eliminate MAXCONCURRENCY macro. * elaborate.h (systemtap_session): Add "macros" field. * parse.cxx (parse_if_statement): Clear "elseblock" if needed. 2005-09-28 Frank Ch. Eigler <fche@elastic.org> PR 1182. * systemtap.samples/control_limits.*: New test.
* 2005-09-27 Frank Ch. Eigler <fche@elastic.org>fche2005-09-271-13/+42
| | | | | | | | PR 1368. * translate.cxx (emit_common_header): Move some MAX* definitions out ... (translate_pass): ... to here. Fix probe_start API impedance mismatch. (emit_module_init, exit): Tolerate registration errors, such as absence of kretprobes support.
* * reduce emitted comment noisefche2005-09-221-3/+2
|
* 2005-09-14 Frank Ch. Eigler <fche@elastic.org>fche2005-09-141-0/+4
| | | | | | | | | PR 1344 * translate.cxx: Call _stp_map_clear for "delete ARRAY" statement. 2005-09-14 Frank Ch. Eigler <fche@elastic.org> * systemtap.samples/pfaults.stp: Complicate to test PR 1344.
* 2005-09-12 Frank Ch. Eigler <fche@elastic.org>fche2005-09-131-3/+1
| | | | | | | PR 1335 * translate.cxx (c_tmpcounter::visit_functioncall): Correct recursion sequence. * testsuite/buildok/nineteen.stp: New test case.
* 2005-09-06 Frank Ch. Eigler <fche@elastic.org>fche2005-09-071-1/+1
| | | | | | | | * stap.1.in: Clarify absence of short-circuiting in && and ||. * translate.cxx (emit_function): Improve "array locals" message. * tapset/timestamp.stp: Add gettimeofday_us function. Correct arithmetic typing in other functions. * stapfuncs.5.in: Document new function.
* 2005-09-05 Frank Ch. Eigler <fche@elastic.org>fche2005-09-061-2/+2
| | | | | | | | | PR 1289 * translate.cxx (lex_cast_qstring): Correct "cast" of object to string containing more than one word. * tapset.cxx (lex_cast_qstring): Ditto. (dwarf_derived_module::emit_probe_entries): Emit and use a generic fault_handler.
* 2005-09-05 Frank Ch. Eigler <fche@elastic.org>fche2005-09-051-17/+37
| | | | | | | | | | | | | | | | | PR 1172. * staptree.h, staptree.cxx: Make all ::print*(), operator<< functions take const staptree objects. (literal_string::print): \-prefix double-quotes. * translate.cxx (emit_common_header): Add context probe_point field. Switch to atomic_t busy flags. (emit_module_exit): Use atomic operations for busy flag. (visit_*): Use lex_cast_qstring for last_stmt strings. * tapsets.cxx (lex_cast_quoted): \-prefix double-quotes too. (*::emit_probe_entries): Populate probe_point. Use atomic operations for busy flag. * tapset/context.stp (pp): New function. * stapfuncs.5.in: Document it. * testsuite/buildok/context_test.stp: Test it.
* 2005-09-04 Frank Ch. Eigler <fche@elastic.org>fche2005-09-051-1/+8
| | | | * translate.cxx (visit_literal_string): \-prefix double-quotes.
* 2005-09-02 Frank Ch. Eigler <fche@redhat.com>fche2005-09-021-39/+52
| | | | | | | | * translate.cxx (varlock): Use trylock only for write locks. (translate_pass): Remove read_trylock macro hack. (visit_foreach_loop): Remove protective read lock, until PR 1275. (visit_*): Added many more "last_stmt"-setting expressions in the output, to improve last_error message locality.
* fix indentation errors in outputfche2005-09-021-5/+2
|
* 2005-09-01 Martin Hunt <hunt@redhat.com>hunt2005-09-011-6/+4
| | | | | | | | | * translate.cxx (emit_probe): Add a call to _stp_print_flush at the end of each probe. (translate_pass): Define STP_NUM_STRINGS to be 1 for a scratch string. Include current.c and stack.c. Don't define KALLSYMS_LOOKUP_NAME or KALLSYMS_LOOKUP. Remove references to next_fmt() and stp_dbug().
* 2005-08-31 Frank Ch. Eigler <fche@redhat.com>fche2005-08-311-2/+10
| | | | | | * translate.cxx (visit_array_in, visit_arrayindex): Use write locks even for array reads, until PR 1275. (translate_pass): Add read_trylock -> write_trylock escalation.
* 2005-08-30 Frank Ch. Eigler <fche@elastic.org>fche2005-08-301-2/+29
| | | | | | PR systemtap/1268 * translator (varlock): Add deadlock detection code. (emit_common_header): Add a new MAXTRYLOCK configuration macro.
* 2005-08-29 Frank Ch. Eigler <fche@redhat.com>fche2005-08-301-8/+30
| | | | | | | | | | | | | | * stapprobes.5.in, stapfuncs.5.in, stapex.5.in: New man pages. * stap.1.in: Moved some content out. * Makefile.am (man_MANS): Add new man pages. * configure.ac (AC_CONFIG_FILES): Add them. * systemtap.spec.in: Package them. * Makefile.in, configure: Regenerated. * buildrun.cxx (run_pass): Pass "-r" to stpd. * translate.cxx (emit_common_header): Wrap try/catch around variable decls, to improve exception particularity. (visit_literal_number): Emit as unsigned literal, which is actually a subtle correctness issue.
* 2005-08-28 Frank Ch. Eigler <fche@redhat.com>fche2005-08-281-0/+2
| | | | | | | * translate.cxx (visit_target): Make target variable exceptions more informative. (literal_stmt_for_local): Improve bad-type exception message. * translate.cxx (emit_module_init): Include probe point in comments.
* 2005-08-26 Graydon Hoare <graydon@redhat.com>graydon2005-08-261-53/+20
| | | | * translate.cxx: Revert tmp initialization changes.
* 2005-08-26 Graydon Hoare <graydon@redhat.com>graydon2005-08-261-26/+59
| | | | | | | | | | | * parse.cxx (scan): Preserve basic C-ish escapes. * translate.cxx (c_tmpcounter::declaring): New flag. (c_tmpcounter::declare_or_init): New helper method. (c_tmpcounter::visit_*): Use declare_or_init. (c_unparser::emit_function): Run a tmpcounter to initialize tmps. (c_unparser::emit_probe): Likewise. (c_unparser::c_strcpy): Use strlcpy. (c_unparser::c_strcat): Use strlcat.
* 2005-08-24 Frank Ch. Eigler <fche@elastic.org>fche2005-08-241-3/+3
| | | | | * translate.cxx (emit_global, emit_module_init): Use 2.6.9-compatible rwlock initialization.
* 2005-08-24 Frank Ch. Eigler <fche@elastic.org>fche2005-08-241-57/+124
| | | | | | | | | | | | | | | | | | | * tapsets.cxx (*::emit_probe_entries): Treat NULL and "" last_errors both as clean early returns, not errors. * translate.cxx: Revamp last_error handling logic. Remove all "goto out" paths from expression context. (visit_statement): Handle last_error exit one nesting level at a time. (visit_return_statement, visit_functioncall): Set/reset last_error="". (c_tmpcounter::visit_for_loop): New routine. (c_unparser::visit_foreach, visit_for_loop): Rewrite to properly support continue/breaks, non-local exits, (foreach) locks. (emit_global): Emit lock variable. (varlock ctor, dtor): Lock/unlock global variable. (varlock_w, varlock_r): New concrete subclasses. Update all users. * tapset/builtin_logging.stp (exit): Don't set last_error. * src/testsuite/buildok/sixteen.stp: New test. * tapsets.cxx: Temporarily rolled back graydon's changes.
* 2005-08-21 Frank Ch. Eigler <fche@redhat.com>fche2005-08-211-22/+55
| | | | | | | | | | | | | | | | | PR systemtap/1195, systemtap/1193 * elaborate.cxx (alias_expansion_builder): Set new block token. * parse.cxx (parse_symbol): Set new target_symbol token. * runtest.sh: Store more pertinent failure data. * tapsets.cxx (emit_probe_entries): Rewrite error-handling path. * translate.cxx (emit_common_header): Goodbye errorcount, hello last_error & last_stmt. (c_unparser::visit_statement): New "header" for all other stmts. (c_assignop, visit_binary_expression): Adapt to last_error. * tapset/builtin_logging.stp: Adapt to last_error. 2005-08-21 Frank Ch. Eigler <fche@redhat.com> * arith.c (*): Adapt to last_error context variable.
* 2005-08-19 Frank Ch. Eigler <fche@elastic.org>fche2005-08-191-1/+1
| | | | | PR systemtap/1213 * translate.cxx (visit_if_statement): Translate else arms.
* 2005-08-19 Frank Ch. Eigler <fche@elastic.org>fche2005-08-191-0/+1
| | | | | | | | | | | | | | | | | PR systemtap/1209 * tapsets.cxx * elaborate.cxx (derived_probe_builder): Add get_param function. * elaborate.h: Declare them. * tapsets.cxx (dwarf_query::get_*_param): Call them. (timer_derived_probe, timer_builder): New classes. (register_standard_tapsets): Register timer.jiffies(N) and friend. * translate.cxx (translate_pass): #include <linux/timers.h>. * stap.1.in: Document timer.jiffies(N) probe points. * testsuite/buildok/fourteen.stp: New test. 2005-08-19 Frank Ch. Eigler <fche@elastic.org> * arith.c (_stp_random_pm): New function.
* [ChangeLog]graydon2005-08-131-2/+42
| | | | | | | | | | | | | | | 2005-08-12 Graydon Hoare <graydon@redhat.com> * translate.cxx (c_tmpcounter::visit_array_in): Implement. (c_unparser::visit_array_in): Likewise. (mapvar::exists): New method. [runtime/ChangeLog] 2005-08-12 Graydon Hoare <graydon@redhat.com> * map-values.c (_stp_map_entry_exists): New function. * map.h (_stp_map_entry_exists): Declare it.
* 2005-08-12 Frank Ch. Eigler <fche@elastic.org>fche2005-08-121-23/+34
| | | | | | | | | | | | | | | | | | | | | | | | PR systemtap/1122 et alii * parse.cxx (parse_literal): Parse and range-limit 64-bit numbers. (parse_unary): Correct precedence glitch. * staptree.h (literal_number): Store an int64_t. * staptree.cxx: Corresponding changes. * translate.cxx (check_dbz): Remove - insufficient. (emit_function): Define CONTEXT macro sibling for THIS. (c_typename): pe_long -> int64_t. (visit_literal_number): Format literal rigorously and uglily. (c_assignop, visit_binary_expression): Handle div/mod via new helper functions in runtime. * tapset/builtin_logging.stp: Add error, exit builtins. * testsuite/buildok/ten,eleven.stp: New tests. * testsuite/parse{ko,ok}/six.stp: Modify for larger numbers. * testsuite/transok/one.stp: Add more ";"s, maybe unnecessarily. 2005-08-12 Frank Ch. Eigler <fche@elastic.org> * arith.c: New file to contain arithmetic helper functions. * builtin_functions.h: Remove, unused. * runtime.h: Include it.
* 2005-08-11 Frank Ch. Eigler <fche@elastic.org>fche2005-08-111-0/+3
| | | | | | | | * translate.cxx (emit_function): Add an extra { } around the function body visitation. * tapset/timestamp_functions.stp: New file. * tapset/builtin_conversions.stp: Aggregated from [hex]string. * tapset/builtin_logging.stp: Aggregated from log/warn/printk.
* 2005-08-10 Frank Ch. Eigler <fche@elastic.org>fche2005-08-101-2/+5
| | | | | | | | | | | PR translator/1186 * elaborate.cxx (resolve_2types): Accept a flag to tolerate unresolved expression types. (visit_functioncall): Call it thusly. * translate.cxx (emit_function): Tolerate void functions. * stap.1.in: Document possibility of void functions. * tapset/builtin_{log,printk,warn}.stp: Make these void functions. * testsuite/buildok/nine.stp, semok/eighteen.stp: New tests.
* 2005-08-09 Graydon Hoare <graydon@redhat.com>graydon2005-08-101-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * staptree.{cxx,h} (target_symbol): New struct. (*_visitor::visit_target_symbol): Support it. (visitor::active_lvalues) (visitor::is_active_lvalue) (visitor::push_active_lvalue) (visitor::pop_active_lvalue): Support lvalue-detection. (delete_statement::visit) (pre_crement::visit) (post_crement::visit) (assignment::visit): Push and pop lvalue expressions. * elaborate.{cxx,h} (lvalule_aware_traversing_visitor): Remove class. (no_map_mutation_during_iteration_check) (mutated_map_collector): Update lvalue logic. (typeresolution_info::visit_target_symbol): Add, throw error. * parse.{cxx,h} (tt2str) (tok_is) (parser::expect_*) (parser::peek_*): New helpers. (parser::parse_symbol): Rewrite, support target_symbols. * translate.cxx (c_unparser::visit_target_symbol): Implement. * tapsets.cxx (var_expanding_copy_visitor): Update lvalue logic, change visit_symbol to visit_target_symbol.
* 2005-08-09 Graydon Hoare <graydon@redhat.com>graydon2005-08-091-2/+46
| | | | | | | | | | | | | | | | | * elaborate.cxx: (delete_statement_symresolution_info): New struct. (symresolution_info::visit_delete_statement): Use it. (delete_statement_typeresolution_info): New struct. (typeresolution_info::visit_delete_statement): Use it. (symresolution_info::find_var): Accept -1 as 'unknown' arity. * elaborate.h: Update to reflect changes in .cxx. * translate.cxx (mapvar::del): New method. (c_unparser::getmap): Check arity >= 1; (delete_statement_operand_visitor): New struct. (c_unparser::visit_delete_statement): Use it. * staptree.cxx (vardecl::set_arity): Accept and ignore -1. (vardecl::compatible_arity): Likewise. * testsuite/buildok/eight.stp: New test for 'delete' operator.
* 2005-08-05 Frank Ch. Eigler <fche@elastic.org>fche2005-08-051-14/+32
| | | | | | | | | | | | | | | | PR translator/1175 * translate.cxx (*): Added unlikely() markers to most emitted error checks. (mapvar::get,set): Handle NULL<->"" impedance mismatch. (itervar::get_key): Ditto. Use base index=1 for keys. * testsuite/buildok/one.stp: Extend. And it runs with -p5 too. * stap.1: Document use of ";" statament as mechanism for grammar ambiguity resolution. * stp_check.in: Set $prefix. * systemtap.spec.in: Prereq kernel-devel, kernel-debuginfo, and not tcl. * tapsets.cxx: Make slightly less verbose. * translate.cxx
* 2005-08-01 Frank Ch. Eigler <fche@elastic.org>fche2005-08-011-18/+19
| | | | | | | | | * elaborate.cxx (derive_probes, semantic_pass_symbols): Improve error message specificity. * translate.cxx (emit_module_init): Compact partial registration recovery code. (emit_module_exit): Invert deregistration sequence. * testsuite/buildok/four.stp: Some module() test case.
* 2005-07-28 Graydon Hoare <graydon@redhat.com>graydon2005-07-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | * elaborate.cxx (derived_probe::derived_probe): Accept NULL probe. * staptree.cxx (provide, require): Move from here... * staptree.h: to here, and virtualize deep-copy methods. * translate.cxx (c_unparser::emit_common_header): Include loc2c-runtime.h * tapsets.cxx (dwflpp::iterate_over_modules): Use new, faster getmodules loop. (dwflpp::literal_stmt_for_local): New method, call loc2c. (var_expanding_copy_visitor): New struct which expands $-vars. (dwarf_derived_probe): Rebuild this->body using var expander. (query_function): Refactor logic a bit for speed. * loc2c.{c,h}: Copies (with minor changes) of Roland's work from elfutils CVS. * Makefile.am (AM_CFLAGS): Set to elfutils-style. (stap_SOURCES): Add loc2c.c. * Makefile.in: Regenerate. 2005-07-28 Graydon Hoare <graydon@redhat.com> * loc2c-runtime.h: New file from elfutils CVS.