This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: gimplify_parameters


    Then explain the failure in PR 18067.

Well it doesn't fail now, so I can't look at it, but I believe the issue
there is something else, though it is something we need to address.

The problem is that we have a variably-sized type and so have gimplified
each of the variable parts of the type into variables.  Some of those start
out being used in the code, so they are taken into SSA form.

But then they are found to be dead, so it gets left as an SSA_NAME.

That means we don't know value of that part of the type and so we can't
emit debugging information about it.  Putting in the SAVE_EXPR keeps
it from blowing up, but we *still* don't know the data since it's not
being computed, being dead from a code generation perspective.

With -O2, variables are often removed and can't be seen by the debugger and
that's (unfortunately) sometimes the case with attributes of variably-sized
types.  That's not new.

So I think the proper fix for that PR ought to be to allow SSA_NAME in 
loc_descriptor_for_tree_1 as meaning "we don't know where this lives"
and revert the change to save_expr.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]