Commit 31fcb30f by Doug Rupp Committed by Arnaud Charlet

2008-08-06 Doug Rupp <rupp@adacore.com>

	* 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
parent ea08fcdc
2008-08-06 Doug Rupp <rupp@adacore.com>
* 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 <schonberg@adacore.com> 2008-08-06 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Process_Discriminants): diagnose redundant or improper * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
...@@ -45,6 +45,13 @@ ...@@ -45,6 +45,13 @@
#include "einfo.h" #include "einfo.h"
#include "ada-tree.h" #include "ada-tree.h"
#include "gigi.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 tree find_common_type (tree, tree);
static bool contains_save_expr_p (tree); static bool contains_save_expr_p (tree);
...@@ -1950,7 +1957,9 @@ build_call_alloc_dealloc (tree gnu_obj, tree gnu_size, unsigned align, ...@@ -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 /* If the allocator size is 32bits but the pointer size is 64bits then
allocate 32bit memory (sometimes necessary on 64bit VMS). Otherwise allocate 32bit memory (sometimes necessary on 64bit VMS). Otherwise
default to standard malloc. */ 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); return build_call_1_expr (malloc32_decl, gnu_size);
else else
return build_call_1_expr (malloc_decl, gnu_size); return build_call_1_expr (malloc_decl, gnu_size);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment