Re: RFA: fix PR 9164

Joel Brobecker
2009-01-05T04:23:55Z

> Tom> This fix defers the choice of type to the language, using the existing
> Tom> language-arch machinery. I fixed the C language family, including
> Tom> ObjC, but I left the other languages unchanged. I think the language
> Tom> maintainers will have to make a change here, if one is needed or
> Tom> desired. (FWIW I don't think Java needs a change, since I don't think
> Tom> it is possible to invoke sizeof when Java is the selected language.)
>
> Daniel> Before adding all this, do you know of any language where the signed
> Daniel> behavior is correct?
>
> Nope. I don't know that a signed type is incorrect, either. I really
> know nothing about the other languages here, so I chose to preserve
> the current behavior.

In Ada, the equivalent of the sizeof operator is the 'Size attribute.
This attribute is a function that returns the size in bits and its
type is a ``universal_integer''. universal_integer is not a type
you can use in declarations, but it allows any integer values, so
I think that it would be reasonable to make the 'size attribute
return a value of Integer type (thus signed). I checked the code,
and we actually use builtin_type_int32 (we used to use builtin_type_int
but this type is hard to get to, now, as you need access to the gdbarch).

--
Joel