Fix size_type_node and sizetype in Fortran frontend

From-SVN: r166976
This commit is contained in:
Janne Blomqvist 2010-11-20 15:55:14 +02:00
parent 4942af9b83
commit c1775967e3
3 changed files with 11 additions and 11 deletions

View File

@ -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.

View File

@ -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);

View File

@ -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);