annotate gcc/config/vms/vms.h @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* Definitions of target machine GNU compiler. VMS common version.
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 131
diff changeset
2 Copyright (C) 2003-2020 Free Software Foundation, Inc.
111
kono
parents:
diff changeset
3 Contributed by Douglas B Rupp (rupp@gnat.com).
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 This file is part of GCC.
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 GCC is free software; you can redistribute it and/or modify
kono
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
kono
parents:
diff changeset
9 the Free Software Foundation; either version 3, or (at your option)
kono
parents:
diff changeset
10 any later version.
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 GCC is distributed in the hope that it will be useful,
kono
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
kono
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
kono
parents:
diff changeset
15 GNU General Public License for more details.
kono
parents:
diff changeset
16
kono
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
kono
parents:
diff changeset
18 along with GCC; see the file COPYING3. If not see
kono
parents:
diff changeset
19 <http://www.gnu.org/licenses/>. */
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 #define TARGET_OBJECT_SUFFIX ".obj"
kono
parents:
diff changeset
22 #define TARGET_EXECUTABLE_SUFFIX ".exe"
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 #define TARGET_OS_CPP_BUILTINS() \
kono
parents:
diff changeset
25 do { \
kono
parents:
diff changeset
26 builtin_define_std ("vms"); \
kono
parents:
diff changeset
27 builtin_define_std ("VMS"); \
kono
parents:
diff changeset
28 builtin_assert ("system=vms"); \
kono
parents:
diff changeset
29 SUBTARGET_OS_CPP_BUILTINS(); \
kono
parents:
diff changeset
30 builtin_define ("__int64=long long"); \
kono
parents:
diff changeset
31 if (flag_vms_pointer_size == VMS_POINTER_SIZE_32) \
kono
parents:
diff changeset
32 builtin_define ("__INITIAL_POINTER_SIZE=32"); \
kono
parents:
diff changeset
33 else if (flag_vms_pointer_size == VMS_POINTER_SIZE_64) \
kono
parents:
diff changeset
34 builtin_define ("__INITIAL_POINTER_SIZE=64"); \
kono
parents:
diff changeset
35 if (POINTER_SIZE == 64) \
kono
parents:
diff changeset
36 builtin_define ("__LONG_POINTERS=1"); \
kono
parents:
diff changeset
37 builtin_define_with_int_value ("__CRTL_VER", vms_c_get_crtl_ver ()); \
kono
parents:
diff changeset
38 builtin_define_with_int_value ("__VMS_VER", vms_c_get_vms_ver ()); \
kono
parents:
diff changeset
39 } while (0)
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 extern void vms_c_register_includes (const char *, const char *, int);
kono
parents:
diff changeset
42 #define TARGET_EXTRA_INCLUDES vms_c_register_includes
kono
parents:
diff changeset
43
kono
parents:
diff changeset
44 /* Tell compiler we want to support VMS pragmas */
kono
parents:
diff changeset
45 #define REGISTER_TARGET_PRAGMAS() vms_c_register_pragma ()
kono
parents:
diff changeset
46
kono
parents:
diff changeset
47 /* By default, allow $ to be part of an identifier. */
kono
parents:
diff changeset
48 #define DOLLARS_IN_IDENTIFIERS 2
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 #undef TARGET_ABI_OPEN_VMS
kono
parents:
diff changeset
51 #define TARGET_ABI_OPEN_VMS 1
kono
parents:
diff changeset
52
kono
parents:
diff changeset
53 /* "long" is 32 bits, but 64 bits for Ada. */
kono
parents:
diff changeset
54 #undef LONG_TYPE_SIZE
kono
parents:
diff changeset
55 #define LONG_TYPE_SIZE 32
kono
parents:
diff changeset
56 #define ADA_LONG_TYPE_SIZE 64
kono
parents:
diff changeset
57
kono
parents:
diff changeset
58 /* Pointer is 32 bits but the hardware has 64-bit addresses, sign extended. */
kono
parents:
diff changeset
59 #undef POINTER_SIZE
kono
parents:
diff changeset
60 #define POINTER_SIZE (flag_vms_pointer_size == VMS_POINTER_SIZE_NONE ? 32 : 64)
kono
parents:
diff changeset
61 #define POINTERS_EXTEND_UNSIGNED 0
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 /* Always a 32 bit type. */
kono
parents:
diff changeset
64 #undef SIZE_TYPE
kono
parents:
diff changeset
65 #define SIZE_TYPE "unsigned int"
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 /* ???: Defined as a 'int' by dec-c, but obstack.h doesn't like it. */
kono
parents:
diff changeset
68 #undef PTRDIFF_TYPE
kono
parents:
diff changeset
69 #define PTRDIFF_TYPE (flag_vms_pointer_size == VMS_POINTER_SIZE_NONE ? \
kono
parents:
diff changeset
70 "int" : "long long int")
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 #define SIZETYPE (flag_vms_pointer_size == VMS_POINTER_SIZE_NONE ? \
kono
parents:
diff changeset
73 "unsigned int" : "long long unsigned int")
kono
parents:
diff changeset
74
kono
parents:
diff changeset
75 #define C_COMMON_OVERRIDE_OPTIONS vms_c_common_override_options ()
kono
parents:
diff changeset
76
kono
parents:
diff changeset
77 /* VMS doesn't support other sections than .text for code. */
kono
parents:
diff changeset
78 #define TARGET_ASM_FUNCTION_SECTION vms_function_section
kono
parents:
diff changeset
79
kono
parents:
diff changeset
80 /* Always use 8 bytes addresses in dwarf2 debug info. The default value doesn't
kono
parents:
diff changeset
81 work as it may be 4 bytes, which won't match gas default (8 bytes for ia64),
kono
parents:
diff changeset
82 and will thus produce incorrect values. */
kono
parents:
diff changeset
83 #define DWARF2_ADDR_SIZE 8
kono
parents:
diff changeset
84
kono
parents:
diff changeset
85 /* No libm on VMS. */
kono
parents:
diff changeset
86 #define MATH_LIBRARY ""
kono
parents:
diff changeset
87
kono
parents:
diff changeset
88 /* Special VMS debugger symbol to record the entry point. */
kono
parents:
diff changeset
89 #define VMS_DEBUG_MAIN_POINTER "TRANSFER$BREAK$GO"
kono
parents:
diff changeset
90
kono
parents:
diff changeset
91 #undef TARGET_LIBC_HAS_FUNCTION
kono
parents:
diff changeset
92 #define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function