This is the mail archive of the gcc-patches@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] |
We were observing GDB misbheavior on proprietary internal tests, and these turned out to be caused by mistaken alignments expressed in the XVL encodings of some Ada parallel descriptive types. The XVL alignment encoding is worked out by gigi's rest_of_record_type_compilation, looking at the shape of field position expressions, for instance /* An offset which is a bitwise AND with a negative power of 2 means an alignment corresponding to this power of 2. */ We need to strip off intermediate conversions in the process to have such expressions exposed, we were missing doing so in some cases and this patch fixes that. It also replaces a manual loop by an equivalent call to remove_conversions. Bootstrapped and regression tested on x86_64-suse-linux. 2008-06-13 Olivier Hainque <hainque@adacore.com> * utils.c (rest_of_record_type_compilation): When computing encodings for the components of a variable size type, early strip conversions on the current position expression to make sure it's shape is visible. Use remove_conversions for this purpose.
Attachment:
xvl.dif
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |