From: Doug Rupp Date: Wed, 6 Aug 2008 07:57:04 +0000 (+0000) Subject: 2008-08-06 Doug Rupp X-Git-Tag: releases/gcc-4.4.0~3315 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=31fcb30fe6b1c157846247b2f6b809e8d9e50460;p=thirdparty%2Fgcc.git 2008-08-06 Doug Rupp * gcc-interface/utils2.c (snames.h) Include (TARGET_ABI_OPEN_VMS): Initialize. (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap for Convention C. From-SVN: r138767 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 80d4385182c8..72bbd6b393c9 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,10 @@ +2008-08-06 Doug Rupp + + * gcc-interface/utils2.c (snames.h) Include + (TARGET_ABI_OPEN_VMS): Initialize. + (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap + for Convention C. + 2008-08-06 Ed Schonberg * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper diff --git a/gcc/ada/gcc-interface/utils2.c b/gcc/ada/gcc-interface/utils2.c index 89fb5f0f4192..84d5a587f5bd 100644 --- a/gcc/ada/gcc-interface/utils2.c +++ b/gcc/ada/gcc-interface/utils2.c @@ -45,6 +45,13 @@ #include "einfo.h" #include "ada-tree.h" #include "gigi.h" +#include "snames.h" + +/* Let code below know whether we are targetting VMS without need of + intrusive preprocessor directives. */ +#ifndef TARGET_ABI_OPEN_VMS +#define TARGET_ABI_OPEN_VMS 0 +#endif static tree find_common_type (tree, tree); static bool contains_save_expr_p (tree); @@ -1950,7 +1957,9 @@ build_call_alloc_dealloc (tree gnu_obj, tree gnu_size, unsigned align, /* If the allocator size is 32bits but the pointer size is 64bits then allocate 32bit memory (sometimes necessary on 64bit VMS). Otherwise default to standard malloc. */ - if (UI_To_Int (Esize (Etype (gnat_node))) == 32 && POINTER_SIZE == 64) + if (TARGET_ABI_OPEN_VMS && POINTER_SIZE == 64 + && (UI_To_Int (Esize (Etype (gnat_node))) == 32 + || Convention (Etype (gnat_node)) == Convention_C)) return build_call_1_expr (malloc32_decl, gnu_size); else return build_call_1_expr (malloc_decl, gnu_size);