This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [committed] PATCHES: The "big one" (ObjC/ObjC++)
- From: Eric Botcazou <ebotcazou at libertysurf dot fr>
- To: Ziemowit Laski <zlaski at apple dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 21 Sep 2004 10:05:47 +0200
- Subject: Re: [committed] PATCHES: The "big one" (ObjC/ObjC++)
- References: <D417E848-0131-11D9-A258-000393673036@apple.com>
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