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]

your change to tree-sra.c


You deleted the test for DECL_INITIAL being null in sra_walk_modify_expr.
That broke Ada bootstrap for exactly the case that I put it there.

The case is the Ada front end file osint.adb in the Osint._Elabb routine.
Look at the assignment _init = osint__P32s;

osint__p32s is a static that has a zero DECL_INITIAL because it's an
expression that's not a valid initializer.  But that does't mean that
it's zero.  Indeed you can see it initialized directly above.

How should this be handled?

Do we want to preserve a static with DECL_INITIAL meaning no data?
In that case, I can set it to error_mark_node instead of zero (like 
gimplify_decl_expr does) for the variable DECL_INITIAL case and
put back the test for ERROR_MARK here.

But I think it best not to rely on a zero DECL_INITIAL meaning anything.

What do you think?


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