This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: PR 6212
- From: Mark Mitchell <mark at codesourcery dot com>
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Mon, 06 May 2002 07:58:47 -0700
- Subject: Re: PR 6212
> Well, it's not "merely being read", but not being dereferenced either.
Yes; I should have said "used" perhaps.
> The relevant part of the testcase is:
>
> void
> fde_split (fde **probe, struct fde_vector *linear, struct fde_vector
> *erratic) {
> erratic->array[probe - linear->array] = 0;
> }
>
> To do this index computation, we do the subtraction, divide by the size
> of the object being pointed to (POINTER_SIZE), then multiply by the size
> of the element of ARRAY, also POINTER_SIZE.
Seems like it would be nice if "fold" would just give us back the original
thing, there, but that's hardly a general solution.
> Well, what I tested was the following, plus the change to make that
> function unsigned:
Good, I like this patch. Please run the complete set of tests and then
check it in.
> *** expr.c 16 Apr 2002 06:03:36 -0000 1.423.2.18
> --- expr.c 6 May 2002 10:43:38 -0000
> *************** highest_pow2_factor (exp)
> *** 5903,5906 ****
> --- 5903,5912 ----
> c1 = highest_pow2_factor (TREE_OPERAND (exp, 2));
> return MIN (c0, c1);
> +
> + case PARM_DECL: case VAR_DECL: case RESULT_DECL:
> + /* If this is an object that is a pointer type, assume it is
> + properly aligned. */
> + if (POINTER_TYPE_P (TREE_TYPE (exp)))
> + return TYPE_ALIGN (TREE_TYPE (TREE_TYPE (exp)));
>
> default:
>
> You should, in any case, fix this on the mainline quickly. There, you
> can of course use a more invasive technique if you like.
>
> Right, but the new tree node will be a lot of work to add, so I don't want
> to rush into it. The above should work there too.
Sure. I think you should definitely check the patch in on the mainline
if you've tested it.
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com