This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] PR14841 and PR15838


    Not really.  This optimization is not done by fold-const.c.
    Why else do you think it didn't work before? ;-)

I don't know, but it's there for the component case, or at least code
that purports to be that:

    case COMPONENT_REF:
      if (TREE_CODE (arg0) == CONSTRUCTOR
	  && ! type_contains_placeholder_p (TREE_TYPE (arg0)))
	{
	  tree m = purpose_member (arg1, CONSTRUCTOR_ELTS (arg0));
	  if (m)
	    return TREE_VALUE (m);
	}
      return t;

    We cannot do this in fold-const.c, because there we can't tell if we
    had just "a = b[c];" or perhaps "a = &b[c];".  That's why I've put it
    in tree-ssa-ccp.c.

If this is just the case where B is a CONSTRUCTOR, I don't understand
the issue you are raising.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]