aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/vms/vms-c.c
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2012-03-12 11:58:16 +0000
committerTristan Gingold <gingold@gcc.gnu.org>2012-03-12 11:58:16 +0000
commitd8aba32a0959169d00b9d89b28f6d4ccc4763be8 (patch)
tree6fb6df38c14e64460a642d25c2d284aef453c48a /gcc/config/vms/vms-c.c
parent10ee90e9fe6751acde4f9de329eeb8c4460cf39d (diff)
downloadgcc-d8aba32a0959169d00b9d89b28f6d4ccc4763be8.zip
gcc-d8aba32a0959169d00b9d89b28f6d4ccc4763be8.tar.gz
gcc-d8aba32a0959169d00b9d89b28f6d4ccc4763be8.tar.bz2
vms.opt: Add vms-opts.h header.
2012-03-12 Tristan Gingold <gingold@adacore.com> * config/vms/vms.opt: Add vms-opts.h header. (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64 target mask. (-mvms-return-codes): Document. (-mpointer-size): New option. (vms_pointer_size): Add enumeration. * config/vms/vms-opts.h: New file. * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define __INITIAL_POINTER_SIZE. (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition. (C_COMMON_OVERRIDE_OPTIONS): Define. (DWARF2_ADDR_SIZE): Define. * config/vms/vms.c (vms_patch_builtins): Adjust condition. * config/vms/vms-protos.h (vms_c_common_override_options): New prototype. * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma if -mno-pointer-size. (vms_c_common_override_options): New function. * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64. * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64. (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64 and flag_vms_pointer_size. (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size. * config.gcc (*-*-*vms*): Define xm_file. (alpha*-dec-*vms*): Do not define xm_file. (alpha64-dec-*vms*): Remove. (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file and tmake_file. libgcc/ 2012-03-12 Tristan Gingold <gingold@adacore.com> * config/alpha/t-vms: Define HOST_LIBGCC2_CFLAGS. * config/ia64/t-vms: Likewise. gcc/ada/ 2012-03-12 Tristan Gingold <gingold@adacore.com> * gcc-interface/decl.c (gnat_to_gnu_param): Use flag_vms_malloc64 instead of TARGET_MALLOC64. * gcc-interface/gigi.h (flag_vms_malloc64): Define instead of TARGET_MALLOC64. From-SVN: r185224
Diffstat (limited to 'gcc/config/vms/vms-c.c')
-rw-r--r--gcc/config/vms/vms-c.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/gcc/config/vms/vms-c.c b/gcc/config/vms/vms-c.c
index 4377eac..229846a 100644
--- a/gcc/config/vms/vms-c.c
+++ b/gcc/config/vms/vms-c.c
@@ -335,8 +335,8 @@ handle_pragma_pointer_size (const char *pragma_name)
static void
vms_pragma_pointer_size (cpp_reader * ARG_UNUSED (dummy))
{
- /* Ignore if 32 bit only. */
- if (POINTER_SIZE != 64)
+ /* Ignore if no -mpointer-size option. */
+ if (flag_vms_pointer_size == VMS_POINTER_SIZE_NONE)
return;
handle_pragma_pointer_size ("pointer_size");
@@ -449,3 +449,20 @@ vms_c_register_includes (const char *sysroot,
}
}
}
+
+void
+vms_c_common_override_options (void)
+{
+ /* Initialize c_default_pointer_mode. */
+ switch (flag_vms_pointer_size)
+ {
+ case VMS_POINTER_SIZE_NONE:
+ break;
+ case VMS_POINTER_SIZE_32:
+ c_default_pointer_mode = SImode;
+ break;
+ case VMS_POINTER_SIZE_64:
+ c_default_pointer_mode = DImode;
+ break;
+ }
+}