> 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?