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: [committed] PATCHES: The "big one" (ObjC/ObjC++)


Hi Ziemowit,

> !!! :-)
>
> http://gcc.gnu.org/ml/gcc-cvs/2004-09/msg00327.html

Congratulations! :-)

However, these bits:

	(objc_build_constructor): Do not convert initializer elements;

broke the compiler on SPARC 64-bit (and very likely on any other big-endian 
LP64 platform).

The ??? note in:

  /* ??? Most of the places that we build constructors, we don't fill in
     the type of integers properly.  Convert them all en masse.  */
  if (TREE_CODE (type) == ARRAY_TYPE)
    {
      f = TREE_TYPE (type);
      if (TREE_CODE (f) == POINTER_TYPE || TREE_CODE (f) == INTEGER_TYPE)
	for (e = elts; e ; e = TREE_CHAIN (e))
	  TREE_VALUE (e) = convert (f, TREE_VALUE (e));
    }
  else
    {
      f = TYPE_FIELDS (type);
      for (e = elts; e && f; e = TREE_CHAIN (e), f = TREE_CHAIN (f))
	if (TREE_CODE (TREE_TYPE (f)) == POINTER_TYPE
	    || TREE_CODE (TREE_TYPE (f)) == INTEGER_TYPE)
	  TREE_VALUE (e) = convert (TREE_TYPE (f), TREE_VALUE (e));
    }

is still true, so you need to either put them back or pass the right type to 
the various calls to build_int_cst.

-- 
Eric Botcazou


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