summaryrefslogtreecommitdiffstats
path: root/elaborate.cxx
Commit message (Collapse)AuthorAgeFilesLines
...
* 2005-08-19 Frank Ch. Eigler <fche@elastic.org>fche2005-08-191-19/+0
| | | | * elaborate.cxx (find_var): Remove $pid/$tid builtin logic.
* nonefche2005-08-181-0/+2
|
* 2005-08-10 Frank Ch. Eigler <fche@elastic.org>fche2005-08-101-3/+3
| | | | | | | | | | | 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-49/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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-6/+69
| | | | | | | | | | | | | | | | | * 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-03 Frank Ch. Eigler <fche@redhat.com>fche2005-08-031-1/+29
| | | | | | | | * stap.1: More meat, all stub sections filled. * elaborate.cxx (visit_assignment): Add numerous missing cases. * parse.cxx: Parse ".=" operator. * testsuite/semok/sixteen.stp: Check them. * main.cxx (usage): Don't show incompletely supported options.
* 2005-08-01 Frank Ch. Eigler <fche@elastic.org>fche2005-08-011-36/+33
| | | | | | | | | * 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-08-01 Frank Ch. Eigler <fche@elastic.org>fche2005-08-011-4/+11
| | | | | | | | | | | * elaborate.cxx (derive_probes): Print error if results empty. * tapsets.cxx (dwflpp_assert): Handle positive RCs, which likely came from errno. (dwflpp::setup): Improve missing debug-info messages. * testsuite/semko/sixteen,seventeen.stp: New tests. * runtest.sh: Save stdout/stderr of FAIL/XPASS test cases. * Makefile.am (clean-local): Clean up testsuite/. * Makefile.in, aclocal.m4: Regenerated.
* 2005-07-29 Frank Ch. Eigler <fche@redhat.com>fche2005-07-291-8/+0
| | | | | | * configure.ac: Fail configure stage if elfutils 0.111+ is not found. * Makefile.am, elaborate.cxx, tapsets.cxx: Unconditionalize. * configure, Makefile.in, config.in: Regenerated.
* 2005-07-28 Frank Ch. Eigler <fche@elastic.org>fche2005-07-291-12/+14
| | | | * elaborate.cxx (find_var): Correct array dereferencing thinko.
* 2005-07-28 Graydon Hoare <graydon@redhat.com>graydon2005-07-291-5/+11
| | | | | | | | | | | | | | | | | | | | | | | * 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.
* 2005-07-28 Frank Ch. Eigler <fche@redhat.com>fche2005-07-281-0/+3
| | | | | | | | | | | | translator/1120 translator/1123 * elaborate.cxx (semantic_pass_symbols): Print a more helpful error message around exceptions. * elaborate.h (systemtap_session): Add guru_mode field. * main.cxx (main): Initialize it to false. Add version-sensitive script library searching. Add more failure messages. * tapsets.cxx (dwflpp_assert): Add a decorative text parameter. Update callers.
* 2005-07-26 Graydon Hoare <graydon@redhat.com>graydon2005-07-271-18/+12
| | | | | | * elaborate.cxx: Revert builtin-function code. * translate.cxx: Likewise. * tapsets.{h,cxx}: Likewise.
* 2005-07-26 Frank Ch. Eigler <fche@redhat.com>fche2005-07-261-0/+9
| | | | | | | | | | | | | | | | | | | | | Support %{ embedded-c %} * staptree.h (embeddedcode): New statement subtype. Stub support in visitors. * staptree.cxx: Ditto. * parse.cxx: Parse %{ / %}. Accept "_" as identifier leading char. (parse_probe): Simplify calling convention. * elaborate.h: Store embedded code. * elaborate.cxx: Pass it. * translate.cxx: Transcribe it. Return some dropped module init/exit code. * Makefile.am: Add buildok/buildko tests. * Makefile.in: Regenerated. * main.cxx: Return EXIT_SUCCESS/FAILURE even for weird rc. * testsuite/parseok/nine.stp: Test _identifiers. * testsuite/transko/*.stp: Tweak to force -p3 rather than -p2 errors. * testsuite/semok/transko.stp: ... and keep it that way in the future. * testsuite/parse*/*: Some new tests for %{ %}. * testsuite/build*/*: New tests for -p4.
* 2005-07-22 Graydon Hoare <graydon@redhat.com>graydon2005-07-231-1/+170
| | | | | | | | | | | | | | | * translate.cxx (itervar): New class. (*::visit_foreach_loop): Implement. Various bug fixes. * staptree.cxx (deep_copy_visitor::*): Copy tok fields. * elaborate.cxx (lvalue_aware_traversing_visitor): (mutated_map_collector): (no_map_mutation_during_iteration_check): New classes. (semantic_pass_maps): New function to check map usage. (semantic_pass): Call it. * testsuite/transok/eight.stp: Test 'foreach' loop translation. * testsuite/semko/{thirteen,fourteen,fifteen}.stp: Test prohibited forms of foreach loops.
* 2005-07-20 Graydon Hoare <graydon@redhat.com>graydon2005-07-201-62/+38
| | | | | | | | | * elaborate.{cxx,h} (find_array): Remove. (find_scalar): Rename to find_var, add array support. * staptree.{cxx,h} (vardecl::compatible_arity): New method. * translate.cxx: Refactor, add array read/write support. * testsuite/transok/three.stp: Uncomment array uses. * testsuite/transok/seven.stp: New test of array r/w.
* 2005-07-12 Graydon Hoare <graydon@redhat.com>graydon2005-07-131-13/+19
| | | | | | | | | | | | | | | | | * elaborate.cxx (semantic_pass_symbols): Only enter body if non-null. (semantic_pass_types): Likewise. (semantic_pass): Pass session to register_standard_tapsets. * translate.cxx (builtin_collector): New struct. (hookup_builtins): New function. (translate_pass): Only translate functions with bodies. (c_unparser::emit_common_header): Likewise, and call hookup_builtins. * tapsets.hh (builtin_function): New class. (register_standard_tapsets): Change parameter to session. * tapsets.cc (bultin_function::*): Implement class. (register_standard_tapsets): Register printk, log, warn. * testsuite/transok/six.stp: New test.
* 2005-07-07 Graydon Hoare <graydon@redhat.com>graydon2005-07-081-10/+13
| | | | | | | | * staptree.{h,cxx} (deep_copy_visitor): New visitor. * elaborate.cxx (derived_probe::derived_probe): (alias_expansion_builder::build): Use it. * testsuite/semok/fifteen.stp: New test which relies on deep copy.
* 2005-07-05 Graydon Hoare <graydon@redhat.com>graydon2005-07-061-46/+37
| | | | | | | | | * elaborate.{h,cxx}: Revert previous changes. * tapsets.{h,cxx}: Adapt to verbose as a member of session. * elaborate.cxx (alias_expansion_builder::build): Avoid copying locals between alias definition and use. * testsuite/semok/{twelve,thirteen,fourteen}.stp: New tests. * staptree.cxx (probe_alias::printsig): Print equals sign.
* 2005-07-05 Frank Ch. Eigler <fche@redhat.com>fche2005-07-051-3/+3
| | | | | | | | | | | | | | * elaborate.h (systemtap_session): Add more command-line arguments. * staptree.h (verbose): Bad global, no donut. * elaborate.cxx: Temporarily disable verbose variable access. * main.cxx: Support more arguments, build/run passes. Revamp temporary file generation and partial-pass output generation. * tapsets.cxx, translate.cxx: Emit just enough extra punctuation and fluff to make generated probe pass -Werror. * buildrun.cxx, buildrun.h: New files for passes 4/5. Partial support for build pass, nothing on probe execution yet. * testsuite/transok/*.stp: Force just -p3, now that -p4/5 exist. * Makefile.am, Makefile.in: Corresponding changes.
* 2005-07-04 Graydon Hoare <graydon@redhat.com>graydon2005-07-051-4/+41
| | | | | | | | | * elaborate.h (symresolution_info::current_derived_probe): New field. (symresolution_info::current_probe): Change type. * elaborate.cxx (semantic_pass_symbols): Add passes for resolving locals in pre-derivation base probes and pre-expansion aliases. (symresolution_info::visit_symbol): (symresolution_info::find_scalar): Update to match new field.
* 2005-06-27 Graydon Hoare <graydon@redhat.com>graydon2005-06-291-2/+304
| | | | | | | | | | | | | | | * staptree.{h,cxx} (probe_alias): New structure. * parse.{h,cxx} (parser::parse): Parse probes or probe aliases. (parser::parse_probe): Likewise. * tapsets.{h,cxx}: (derived_probe_builder): (match_key): (match_node): (alias_derived_probe): Move from here, * elaborate.{h,cxx}: to here. * elaborate.h (systemtap_session::pattern_root): New member. (register_library_aliases): New function. * tapsets.cxx: Build one dwarf_derived_probe per target address.
* 2005-06-08 Frank Ch. Eigler <fche@redhat.com>fche2005-06-081-7/+0
| | | | | | | | | | | | | | | systemtap/916 Implement all basic scalar operators, including modify-assignment. * parse.cxx (lexer): Allow multi-character lookahead in order to scan 1/2/3-character operators. (parse_boolean_or/and/xor/shift): New routines. * translate.cxx (visit_assignment, visit_binary_expression, visit_*_crement): Generally rewrote. (visit_*): Added more parentheses in output. (emit_module_init): Initialize globals. * staptree.h, elaborate.cxx, elaborate.h: Remove exponentiation. * main.cxx (main): Add an end-of-line to output file. * testsuite/*: Several new tests.
* next/return symmetry improvementfche2005-06-051-5/+2
|
* 2005-06-05 Frank Ch. Eigler <fche@elastic.org>fche2005-06-051-0/+18
| | | | | | | | | | | Implement for/next/continue/break/while statements. * staptree.h: Declare new 0-arity statement types. Tweak for_loop. * parse.cxx: Parse them all. * translate.cxx (c_unparser): Maintain break/continue label stack. (visit_for_loop, *_statement): New implementations. * elaborate.*, staptree.cxx: Mechanical changes. * testsuite/parseok/ten.stp, semko/twelve.stp, transko/two.stp, transok/five.stp: New tests.
* 2005-06-03 Frank Ch. Eigler <fche@elastic.org>fche2005-06-041-28/+24
| | | | | | | * elaborate.cxx (find_*): Remove arity checks from here ... * staptree.cxx (set_arity): Put arity match assertion here. * testsuite/semko/{six,nine}.stp: Confirm logic. * testsuite/transko/one.stp: First translation-time ko test.
* 2005-06-03 Frank Ch. Eigler <fche@redhat.com>fche2005-06-031-68/+89
| | | | | | | | | | | | | * TODO: Removed entries already represented in bugzilla. * elaborate.cxx: Rewrite type inference for several operators. * main.cxx (main): For -p2 runs, print types of function/probe locals. * parse.cxx (scan): Identify more two-character operators. (parse_comparison): Support the whole suite. * translate.cxx (visit_unary_expression, logical_or_expr, logical_and_expr, comparison,ternary_expression): New support. * testsuite/parseok/semok.stp: Clever new test. * testsuite/transok/four.stp: New test. * testsuite/*: Some tweaked tests for syntax changes.
* 2005-06-02 Frank Ch. Eigler <fche@redhat.com>fche2005-06-021-11/+72
| | | | | | | | | | | | | | | | Parse foreach construct. Added fuller copyright notices throughout. * staptree.h (foreach_loop): New tree node type. * staptree.cxx: Print it, visit it, love it, leave it. * parse.cxx: Parse it. (parse_stmt_block): Don't require ";" separators between statements. (parse_array_in): Use [] as index group operator instead of (). * elaborate.cxx (visit_foreach_loop): New code. * translate.cxx: Slightly tighten errorcount/actioncount handling. * main.cxx: Accept "-" as script file name standing for stdin. (visit_arrayindex): Switch to simpler set_arity call. * configure.ac: Generate DATE macro. * Makefile.in, configure, config.in: Regenerated. * testsuite/*: New/updated tests for syntax changes, foreach ().
* 2005-05-30 Frank Ch. Eigler <fche@redhat.com>fche2005-05-301-7/+22
| | | | | | | | | | | | | | | | | More fully parse & elaborate "expr in array" construct. * staptree.h (array_in): Make this unary. Update .cxx to match. * parse.cxx (parse_array_in): Rewrite. (parse_symbol_plain): Removed. Update .h to match. * elaborate.cxx (typeresolution_info::visit_array_in): New function. (find_array): Tentatively, accept arity=0. * translate.cxx (c_unparser::c_assign): New functions to eliminate much ugly duplication. Use throughout. (visit_symbol): Correct function formal argument search. (c_tmpcounter*::visit): Add missing recursion in several functions. * testsuite/*: Add new tests for array-in construct. Add the first "transok" test. * Makefile.am: Add transok tests. * Makefile.in: Regenerated.
* 2005-05-24 Frank Ch. Eigler <fche@redhat.com>fche2005-05-241-2/+5
| | | | | | | * elaborate.cxx (find_array): Support automagic tapset globals. * testsuite/semok/nine.stp: Test it ... * testsuite/semlib/g2.stp: ... using this global array. * staptree.cxx (stapfile print): List globals.
* * at long last, a more full-bodied snapshotfche2005-05-211-0/+1019
2005-05-20 Frank Ch. Eigler <fche@redhat.com> Many changes throughout. Partial sketch of translation output. * elaborate.*: Elaboration pass. * translate.*: Translation pass. * staptree.*: Simplified for visitor concept. * main.cxx: Translator mainline. * *test.cxx: Removed. * testsuite/*: Some new tests, some changed for newer syntax.