> > But how is it "supposed to mark the variable as addressable"?  If this
> > just means setting TREE_ADDRESSABLE, what's the point of having the hook?
> 
> It also issues language specific warnings

Then one suggestion is that we rename the langhook to "warn_addressable" and
set TREE_ADDRESSABLE explicitly in the middle-end.  But another is to move
the entire processing into the front end and get rid of the langhook
entirely!  It's the front end that's emitting the ADDR_EXPR in the first
place, so it certainly knows it's taking the address of something!

> It's not supposed to be doing other things for languages that don't
> want to emit warnings (or do other front-endy things with the answer)

And where is this documented?

> You haven't explained what you think needs undoing in *any current
> language that uses the hook*.
> We shouldn't be adding hooks just because some theoretical language
> that doesn't exist might want to do things we don't want it to do
> *anyway*.
> No wonder we have so many langhooks.

I was suggesting *removing* a langhook.

But the fact that "no current frontend does something" is not a reason why
"something" isn't valid!  To the greatest extent possible, we are trying to
form a documented interace between the front end and the middle-end.  To do
that, we need to know precisely what a front-end can and can't do and not
rely on what some particular set of them do now.

Specifically, I suggest that we remove the present mark_addressable langhook.
Have the middle-end set TREE_ADDRESSABLE.  If necessary (and I don't think it
is: see above), call a new langhook that *notifies* the front end about the
addressability for the purpose of a warning, but the front end isn't allowed
to change anything else or to rely on or assume that the address will still
be taken when final code is general.

I don't think the alternative of making a new langhook to unmark addressable
is the best because then you'd actually have to make the marking "private"
and have yet another lang hook to see if something is marked!

Reply via email to