> No, the goal is to make the *values* inaccessible, not the names.

No, *I* want gcc to stop doing *&$@ like this:

  stack_parm = gen_rtx_PLUS (Pmode, stack_parm, offset_rtx);

It should use GET_MODE(stack_parm) in case the target has multiple
pointer sizes.

And YES I have a port with multiple pointer sizes, and YES the
customer wanted both sizes supported in a single compilation unit and
NO I couldn't get gcc to do it, because Pmode was hardcoded in a LOT
of inappropriate places.

Oh, and sometimes gcc randomly uses pointer_mode instead of Pmode.  I
haven't a clue why there's a difference, or how badly gcc would break
if pointer_mode and Pmode were different.  Ok, I lied, I *do* know how
badly it breaks if they differ; I did try that at one point.

Here's another [quickly found, possibly inappropriate] one:

  void
  initialize_sizetypes (bool signed_p)
  {
    tree t = make_node (INTEGER_TYPE);
  
    TYPE_MODE (t) = SImode;

size_t is 16 bits on that platform, but SImode is 32 bits.  Is
hard-coding SImode the right thing to do?

Reply via email to