summaryrefslogtreecommitdiff
path: root/gcc/config/vms/vms-c.c
diff options
context:
space:
mode:
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 4377eac04ad..229846a0bf6 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;
+ }
+}