Commit c1775967 by Janne Blomqvist

Fix size_type_node and sizetype in Fortran frontend

From-SVN: r166976
parent 4942af9b
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> 2010-11-17 Joseph Myers <joseph@codesourcery.com>
* f95-lang.c (gfc_be_parse_file): Take no arguments. * f95-lang.c (gfc_be_parse_file): Take no arguments.
......
...@@ -582,15 +582,10 @@ gfc_init_decl_processing (void) ...@@ -582,15 +582,10 @@ gfc_init_decl_processing (void)
only use it for actual characters, not for INTEGER(1). Also, we only use it for actual characters, not for INTEGER(1). Also, we
want double_type_node to actually have double precision. */ want double_type_node to actually have double precision. */
build_common_tree_nodes (false); 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 size_type_node = gfc_build_uint_type (POINTER_SIZE);
in mostly target independent way. */ set_sizetype (size_type_node);
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);
build_common_tree_nodes_2 (0); build_common_tree_nodes_2 (0);
void_list_node = build_tree_list (NULL_TREE, void_type_node); void_list_node = build_tree_list (NULL_TREE, void_type_node);
......
...@@ -919,8 +919,6 @@ gfc_init_types (void) ...@@ -919,8 +919,6 @@ gfc_init_types (void)
gfc_max_array_element_size gfc_max_array_element_size
= build_int_cst_wide (long_unsigned_type_node, lo, hi); = 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_type_node = gfc_get_logical_type (gfc_default_logical_kind);
boolean_true_node = build_int_cst (boolean_type_node, 1); boolean_true_node = build_int_cst (boolean_type_node, 1);
boolean_false_node = build_int_cst (boolean_type_node, 0); boolean_false_node = build_int_cst (boolean_type_node, 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment