]> sourceware.org Git - systemtap.git/commit
Start expanding autocast during type resolution
authorJosh Stone <jistone@redhat.com>
Wed, 7 May 2014 20:07:37 +0000 (13:07 -0700)
committerJosh Stone <jistone@redhat.com>
Wed, 7 May 2014 20:26:34 +0000 (13:26 -0700)
commit66facfa3d0190a2f6da7fd755a73a29f526c169b
tree165d64855832b7cec2a8e88fd9a770c333394bd6
parent4efa1d5a32529d1f239dcd2fa57ab813b6188328
Start expanding autocast during type resolution

There's no real propagation yet, so you can only try directly
transferred types so far, like:

  probe oneshot {
    println( (& @cast(task_current(), "task_struct")) ->pid )
  }

So that captures the task_current() address *with* the type, and then
the "->pid" is working as a separate expression to dereference it.

* elaborate.cxx (semantic_pass_symbols): Move build_no_more from here...
  (semantic_pass): ... to here, well after all types are resolved.
  (autocast_expanding_visitor): New, call on the type_details to expand
  autocast_op into a functioncall, like any $var/@cast would.
  (semantic_pass_types): Use autocast_expanding_visitor whenever the
  normal type resolution indicated there might be something to do.
  (typeresolution_info::visit_autocast_op):  Don't fail immediately;
  just visit the operand, and note when type_details show up.
* tapsets.cxx (exp_type_dwarf::expand): Expand that autocast_op!
  (dwarf_autocast_expanding_visitor): Removed in favor of just having
  autocast_expanding_visitor call exp_type_ptr->expand().
elaborate.cxx
elaborate.h
staptree.h
tapsets.cxx
This page took 0.027546 seconds and 5 git commands to generate.