On 5/2/06, Richard Guenther <[EMAIL PROTECTED]> wrote:
On 5/2/06, Zdenek Dvorak <[EMAIL PROTECTED]> wrote:
> Hello,
>
> I have just noticed that size_type_node is signed in fortran frontend
> (it caused an ice for me because unsigned_type_for returns it for
> pointers, and I inserted an assert that the result of unsigned_type_for
> is unsigned).
>
> According to the comment in tree.h, size_type_node should correspond to
> "The C type `size_t'", and standard specifies that size_t is unsigned.
>
> Is this a bug in fortran frontend, or is size_type_node intentionally
> set in a different way?
Nothing uses size_type_node in the fortran frontend, so it's surely a bug there.
Also there is the (the bogus)
2003-08-19 Diego Novillo <[EMAIL PROTECTED]>
* trans-types.c (gfc_init_types): Initialize
signed_size_type_node with size_type_node.
Same problem for Ada:
/* In Ada, we use a signed type for SIZETYPE. Use the signed type
corresponding to the size of Pmode. In most cases when ptr_mode and
Pmode differ, C will use the width of ptr_mode as sizetype. But we get
far better code using the width of Pmode. Make this here since we need
this before we can expand the GNAT types. */
size_type_node = gnat_type_for_size (GET_MODE_BITSIZE (Pmode), 0);
set_sizetype (size_type_node);
though there it seems to be intentional!?
Richard.