Bootstrapped and tested on x86_64-unknown-linux-gnu, applied as obvious. Richard.
2012-03-12 Richard Guenther <rguent...@suse.de> lto/ * lto-lang.c (builtin_type_for_size): Use lto_type_for_size. fortran/ * f95-lang.c (builtin_type_for_size): Use gfc_type_for_size. c-common/ * c-common.c (c_common_get_narrower): Use c_common_type_for_size. (builtin_type_for_size): Likewise. * config/alpha/alpha.c (alpha_gimplify_va_arg): Use build_nonstandard_integer_type. Index: gcc/lto/lto-lang.c =================================================================== *** gcc/lto/lto-lang.c (revision 185226) --- gcc/lto/lto-lang.c (working copy) *************** along with GCC; see the file COPYING3. *** 36,41 **** --- 36,43 ---- #include "toplev.h" #include "lto-streamer.h" + static tree lto_type_for_size (unsigned, int); + static tree handle_noreturn_attribute (tree *, tree, tree, int, bool *); static tree handle_leaf_attribute (tree *, tree, tree, int, bool *); static tree handle_const_attribute (tree *, tree, tree, int, bool *); *************** def_fn_type (builtin_type def, builtin_t *** 523,529 **** static tree builtin_type_for_size (int size, bool unsignedp) { ! tree type = lang_hooks.types.type_for_size (size, unsignedp); return type ? type : error_mark_node; } --- 525,531 ---- static tree builtin_type_for_size (int size, bool unsignedp) { ! tree type = lto_type_for_size (size, unsignedp); return type ? type : error_mark_node; } Index: gcc/fortran/f95-lang.c =================================================================== *** gcc/fortran/f95-lang.c (revision 185226) --- gcc/fortran/f95-lang.c (working copy) *************** build_builtin_fntypes (tree *fntype, tre *** 605,611 **** static tree builtin_type_for_size (int size, bool unsignedp) { ! tree type = lang_hooks.types.type_for_size (size, unsignedp); return type ? type : error_mark_node; } --- 605,611 ---- static tree builtin_type_for_size (int size, bool unsignedp) { ! tree type = gfc_type_for_size (size, unsignedp); return type ? type : error_mark_node; } Index: gcc/c-family/c-common.c =================================================================== *** gcc/c-family/c-common.c (revision 185226) --- gcc/c-family/c-common.c (working copy) *************** c_common_get_narrower (tree op, int *uns *** 1849,1857 **** /* C++0x scoped enumerations don't implicitly convert to integral type; if we stripped an explicit conversion to a larger type we need to replace it so common_type will still work. */ ! tree type = (lang_hooks.types.type_for_size ! (TYPE_PRECISION (TREE_TYPE (op)), ! TYPE_UNSIGNED (TREE_TYPE (op)))); op = fold_convert (type, op); } return op; --- 1849,1856 ---- /* C++0x scoped enumerations don't implicitly convert to integral type; if we stripped an explicit conversion to a larger type we need to replace it so common_type will still work. */ ! tree type = c_common_type_for_size (TYPE_PRECISION (TREE_TYPE (op)), ! TYPE_UNSIGNED (TREE_TYPE (op))); op = fold_convert (type, op); } return op; *************** c_common_mark_addressable_vec (tree t) *** 9259,9265 **** tree builtin_type_for_size (int size, bool unsignedp) { ! tree type = lang_hooks.types.type_for_size (size, unsignedp); return type ? type : error_mark_node; } --- 9258,9264 ---- tree builtin_type_for_size (int size, bool unsignedp) { ! tree type = c_common_type_for_size (size, unsignedp); return type ? type : error_mark_node; } Index: gcc/config/alpha/alpha.c =================================================================== *** gcc/config/alpha/alpha.c (revision 185226) --- gcc/config/alpha/alpha.c (working copy) *************** alpha_gimplify_va_arg (tree valist, tree *** 6228,6234 **** offset field so that it's the proper width for pointer arithmetic. */ base = get_formal_tmp_var (base_field, pre_p); ! t = fold_convert (lang_hooks.types.type_for_size (64, 0), offset_field); offset = get_initialized_tmp_var (t, pre_p, NULL); indirect = pass_by_reference (NULL, TYPE_MODE (type), type, false); --- 6228,6234 ---- offset field so that it's the proper width for pointer arithmetic. */ base = get_formal_tmp_var (base_field, pre_p); ! t = fold_convert (build_nonstandard_integer_type (64, 0), offset_field); offset = get_initialized_tmp_var (t, pre_p, NULL); indirect = pass_by_reference (NULL, TYPE_MODE (type), type, false);