comparison gcc/coretypes.h @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 /* GCC core type declarations. 1 /* GCC core type declarations.
2 Copyright (C) 2002-2018 Free Software Foundation, Inc. 2 Copyright (C) 2002-2020 Free Software Foundation, Inc.
3 3
4 This file is part of GCC. 4 This file is part of GCC.
5 5
6 GCC is free software; you can redistribute it and/or modify it under 6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free 7 the terms of the GNU General Public License as published by the Free
45 45
46 typedef int64_t gcov_type; 46 typedef int64_t gcov_type;
47 typedef uint64_t gcov_type_unsigned; 47 typedef uint64_t gcov_type_unsigned;
48 48
49 struct bitmap_obstack; 49 struct bitmap_obstack;
50 struct bitmap_head; 50 class bitmap_head;
51 typedef struct bitmap_head *bitmap; 51 typedef class bitmap_head *bitmap;
52 typedef const struct bitmap_head *const_bitmap; 52 typedef const class bitmap_head *const_bitmap;
53 struct simple_bitmap_def; 53 struct simple_bitmap_def;
54 typedef struct simple_bitmap_def *sbitmap; 54 typedef struct simple_bitmap_def *sbitmap;
55 typedef const struct simple_bitmap_def *const_sbitmap; 55 typedef const struct simple_bitmap_def *const_sbitmap;
56 struct rtx_def; 56 struct rtx_def;
57 typedef struct rtx_def *rtx; 57 typedef struct rtx_def *rtx;
63 class fixed_size_mode; 63 class fixed_size_mode;
64 template<typename> class opt_mode; 64 template<typename> class opt_mode;
65 typedef opt_mode<scalar_mode> opt_scalar_mode; 65 typedef opt_mode<scalar_mode> opt_scalar_mode;
66 typedef opt_mode<scalar_int_mode> opt_scalar_int_mode; 66 typedef opt_mode<scalar_int_mode> opt_scalar_int_mode;
67 typedef opt_mode<scalar_float_mode> opt_scalar_float_mode; 67 typedef opt_mode<scalar_float_mode> opt_scalar_float_mode;
68 template<typename> class pod_mode; 68 template<typename> struct pod_mode;
69 typedef pod_mode<scalar_mode> scalar_mode_pod; 69 typedef pod_mode<scalar_mode> scalar_mode_pod;
70 typedef pod_mode<scalar_int_mode> scalar_int_mode_pod; 70 typedef pod_mode<scalar_int_mode> scalar_int_mode_pod;
71 typedef pod_mode<fixed_size_mode> fixed_size_mode_pod; 71 typedef pod_mode<fixed_size_mode> fixed_size_mode_pod;
72 72
73 /* Subclasses of rtx_def, using indentation to show the class 73 /* Subclasses of rtx_def, using indentation to show the class
74 hierarchy, along with the relevant invariant. 74 hierarchy, along with the relevant invariant.
75 Where possible, keep this list in the same order as in rtl.def. */ 75 Where possible, keep this list in the same order as in rtl.def. */
76 class rtx_def; 76 struct rtx_def;
77 class rtx_expr_list; /* GET_CODE (X) == EXPR_LIST */ 77 struct rtx_expr_list; /* GET_CODE (X) == EXPR_LIST */
78 class rtx_insn_list; /* GET_CODE (X) == INSN_LIST */ 78 struct rtx_insn_list; /* GET_CODE (X) == INSN_LIST */
79 class rtx_sequence; /* GET_CODE (X) == SEQUENCE */ 79 struct rtx_sequence; /* GET_CODE (X) == SEQUENCE */
80 class rtx_insn; 80 struct rtx_insn;
81 class rtx_debug_insn; /* DEBUG_INSN_P (X) */ 81 struct rtx_debug_insn; /* DEBUG_INSN_P (X) */
82 class rtx_nonjump_insn; /* NONJUMP_INSN_P (X) */ 82 struct rtx_nonjump_insn; /* NONJUMP_INSN_P (X) */
83 class rtx_jump_insn; /* JUMP_P (X) */ 83 struct rtx_jump_insn; /* JUMP_P (X) */
84 class rtx_call_insn; /* CALL_P (X) */ 84 struct rtx_call_insn; /* CALL_P (X) */
85 class rtx_jump_table_data; /* JUMP_TABLE_DATA_P (X) */ 85 struct rtx_jump_table_data; /* JUMP_TABLE_DATA_P (X) */
86 class rtx_barrier; /* BARRIER_P (X) */ 86 struct rtx_barrier; /* BARRIER_P (X) */
87 class rtx_code_label; /* LABEL_P (X) */ 87 struct rtx_code_label; /* LABEL_P (X) */
88 class rtx_note; /* NOTE_P (X) */ 88 struct rtx_note; /* NOTE_P (X) */
89 89
90 struct rtvec_def; 90 struct rtvec_def;
91 typedef struct rtvec_def *rtvec; 91 typedef struct rtvec_def *rtvec;
92 typedef const struct rtvec_def *const_rtvec; 92 typedef const struct rtvec_def *const_rtvec;
93 struct hwivec_def; 93 struct hwivec_def;
136 struct gomp_teams; 136 struct gomp_teams;
137 137
138 /* Subclasses of symtab_node, using indentation to show the class 138 /* Subclasses of symtab_node, using indentation to show the class
139 hierarchy. */ 139 hierarchy. */
140 140
141 class symtab_node; 141 struct symtab_node;
142 struct cgraph_node; 142 struct cgraph_node;
143 class varpool_node; 143 struct varpool_node;
144 struct cgraph_edge;
144 145
145 union section; 146 union section;
146 typedef union section section; 147 typedef union section section;
147 struct gcc_options; 148 struct gcc_options;
148 struct cl_target_option; 149 struct cl_target_option;
149 struct cl_optimization; 150 struct cl_optimization;
150 struct cl_option; 151 struct cl_option;
151 struct cl_decoded_option; 152 struct cl_decoded_option;
152 struct cl_option_handlers; 153 struct cl_option_handlers;
153 struct diagnostic_context; 154 struct diagnostic_context;
154 struct pretty_printer; 155 class pretty_printer;
156 class diagnostic_event_id_t;
157
158 template<typename T> struct array_traits;
159
160 /* Provides a read-only bitmap view of a single integer bitmask or an
161 array of integer bitmasks, or of a wrapper around such bitmasks. */
162 template<typename T, typename Traits = array_traits<T>,
163 bool has_constant_size = Traits::has_constant_size>
164 class bitmap_view;
155 165
156 /* Address space number for named address space support. */ 166 /* Address space number for named address space support. */
157 typedef unsigned char addr_space_t; 167 typedef unsigned char addr_space_t;
158 168
159 /* The value of addr_space_t that represents the generic address space. */ 169 /* The value of addr_space_t that represents the generic address space. */
296 unknown, sometimes indicating a memory barrier) and -2 (indicating 306 unknown, sometimes indicating a memory barrier) and -2 (indicating
297 that the alias set should be set to a unique value but has not been 307 that the alias set should be set to a unique value but has not been
298 set yet). */ 308 set yet). */
299 typedef int alias_set_type; 309 typedef int alias_set_type;
300 310
301 struct edge_def; 311 class edge_def;
302 typedef struct edge_def *edge; 312 typedef class edge_def *edge;
303 typedef const struct edge_def *const_edge; 313 typedef const class edge_def *const_edge;
304 struct basic_block_def; 314 struct basic_block_def;
305 typedef struct basic_block_def *basic_block; 315 typedef struct basic_block_def *basic_block;
306 typedef const struct basic_block_def *const_basic_block; 316 typedef const struct basic_block_def *const_basic_block;
307 317
308 #if !defined (GENERATOR_FILE) 318 #if !defined (GENERATOR_FILE)
330 namespace gcc { 340 namespace gcc {
331 class context; 341 class context;
332 } 342 }
333 343
334 typedef std::pair <tree, tree> tree_pair; 344 typedef std::pair <tree, tree> tree_pair;
345 typedef std::pair <const char *, int> string_int_pair;
335 346
336 /* Define a name->value mapping. */ 347 /* Define a name->value mapping. */
337 template <typename ValueType> 348 template <typename ValueType>
338 struct kv_pair 349 struct kv_pair
339 { 350 {
367 enum function_class { 378 enum function_class {
368 function_c94, 379 function_c94,
369 function_c99_misc, 380 function_c99_misc,
370 function_c99_math_complex, 381 function_c99_math_complex,
371 function_sincos, 382 function_sincos,
372 function_c11_misc 383 function_c11_misc,
384 function_c2x_misc
373 }; 385 };
374 386
375 /* Enumerate visibility settings. This is deliberately ordered from most 387 /* Enumerate visibility settings. This is deliberately ordered from most
376 to least visibility. */ 388 to least visibility. */
377 enum symbol_visibility 389 enum symbol_visibility