------- Comment #2 from rguenth at gcc dot gnu dot org  2008-12-10 17:44 -------
The relevant path through the CFG is

  struct test ctx;

<bb 2>:
  # ctx_108 = VDEF <ctx_103(D)>
  # SMT.120_109 = VDEF <SMT.120_104(D)>
  # SMT.121_110 = VDEF <SMT.121_105(D)>
  # SMT.122_111 = VDEF <SMT.122_106(D)>
  # SMT.123_112 = VDEF <SMT.123_107(D)>
  __comp_ctor  (&ctx);
  # VUSE <SMT.121_110>
  D.10437_5 = ci_1(D)->_M_node;
  D.10438_6 = (struct _List_node *) D.10437_5;
  # VUSE <ctx_108>
  D.10494_9 = ctx.foo._M_t._M_impl._M_header._M_parent;
  __y_10 = (struct _Rb_tree_node *) D.10494_9;
  __y_12 = (struct _Rb_tree_node *) &ctx.foo._M_t._M_impl._M_header;
...

<bb 7>:
  # __y_21 = PHI <__y_56(6), __y_12(2)>
...

<bb 21>:
  D.10504_36 = &__y_21->D.9518;
...

...
<bb 23>:
  __x.13_77 = (const struct _Rb_tree_node *) D.10504_36;
  # VUSE <SMT.123_100>
  D.11044_78 = D.10438_6->_M_data.pair_ptr;
  # VUSE <SMT.122_96>
  D.11045_79 = __x.13_77->_M_value_field.pair_ptr;


(it's not clear to me what &__y_21->D.9518 accesses - this seems to be a
magic, anonymous thing.  The constraints tell me its at offset zero though.)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38477

Reply via email to