[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