[Ada] Fix obscur regression with VMS descriptors
Eric Botcazou
ebotcazou@adacore.com
Thu Feb 3 13:20:00 GMT 2011
This fixes a regression with VMS descriptors on 32-bit platforms (they are
sort of supported on non-VMS platforms for better coverage) caused by the
changed semantics of build_int_cstu, which now properly truncates.
Tested on i586-suse-linux, applied on the mainline.
2011-02-03 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
GNAT_FORMAL.
* gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
* gcc-interface/utils.c (fill_vms_descriptor): ...here. Take GNU_TYPE
instead of GNAT_FORMAL. Protect the expression against multiple uses.
Do not generate the check directly, instead instantiate the template
check present in the descriptor.
(make_descriptor_field): Move around.
(build_vms_descriptor32): Build a template check in the POINTER field.
(build_vms_descriptor): Remove useless suffixes.
* gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
--
Eric Botcazou
-------------- next part --------------
A non-text attachment was scrubbed...
Name: p.diff
Type: text/x-diff
Size: 17768 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20110203/b96f899f/attachment.bin>
More information about the Gcc-patches
mailing list