Fix size_type_node and sizetype in Fortran frontend
From-SVN: r166976
This commit is contained in:
parent
4942af9b83
commit
c1775967e3
@ -1,3 +1,10 @@
|
||||
2010-11-20 Janne Blomqvist <jb@gcc.gnu.org>
|
||||
|
||||
* f95-lang.c (gfc_init_decl_processing): Set size_type_node as
|
||||
unsigned int of pointer size and set sizetype based on that.
|
||||
* trans-types.c (gfc_init_types): Don't set size_type_node to an
|
||||
unsigned type.
|
||||
|
||||
2010-11-17 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* f95-lang.c (gfc_be_parse_file): Take no arguments.
|
||||
|
@ -582,15 +582,10 @@ gfc_init_decl_processing (void)
|
||||
only use it for actual characters, not for INTEGER(1). Also, we
|
||||
want double_type_node to actually have double precision. */
|
||||
build_common_tree_nodes (false);
|
||||
/* x86_64 mingw32 has a sizetype of "unsigned long long", most other hosts
|
||||
have a sizetype of "unsigned long". Therefore choose the correct size
|
||||
in mostly target independent way. */
|
||||
if (TYPE_MODE (long_unsigned_type_node) == ptr_mode)
|
||||
set_sizetype (long_unsigned_type_node);
|
||||
else if (TYPE_MODE (long_long_unsigned_type_node) == ptr_mode)
|
||||
set_sizetype (long_long_unsigned_type_node);
|
||||
else
|
||||
set_sizetype (long_unsigned_type_node);
|
||||
|
||||
size_type_node = gfc_build_uint_type (POINTER_SIZE);
|
||||
set_sizetype (size_type_node);
|
||||
|
||||
build_common_tree_nodes_2 (0);
|
||||
void_list_node = build_tree_list (NULL_TREE, void_type_node);
|
||||
|
||||
|
@ -919,8 +919,6 @@ gfc_init_types (void)
|
||||
gfc_max_array_element_size
|
||||
= build_int_cst_wide (long_unsigned_type_node, lo, hi);
|
||||
|
||||
size_type_node = gfc_array_index_type;
|
||||
|
||||
boolean_type_node = gfc_get_logical_type (gfc_default_logical_kind);
|
||||
boolean_true_node = build_int_cst (boolean_type_node, 1);
|
||||
boolean_false_node = build_int_cst (boolean_type_node, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user