On 13 Mar 2007 07:58:41 -0700, Ian Lance Taylor <[EMAIL PROTECTED]> wrote:
"Paulo J. Matos" <[EMAIL PROTECTED]> writes:

> INTEGER_CST seems to have TREE_INT_CST_LOW and TREE_INT_CST_HIGH
> fields (tree.def). Each has 32 bits.

No, each has type HOST_WIDE_INT.  On a 64-bit host they will be 64
bits.

> 1 - Should I use ints for these fields?

I don't understand the question.


Which C type is HOST_WIDE_INT?

> 2 - If the INTEGER_CST is negative, is the negative part only in one
> of the high or low fields, i.e. low is always unsigned and high is
> always signed? If not, how do I know if the constant is signed or
> unsigned?

Negative numbers are sign extended through both the high and low
fields.  That said, you need to look at the type of the constant to
know whether you have a negative number or a very large positive
number.


Isn't the type of the constant always integer_type? How can I know if
it is negative or positive?

Ian


Thank you,

--
Paulo Jorge Matos - pocm at soton.ac.uk
http://www.personal.soton.ac.uk/pocm
PhD Student @ ECS
University of Southampton, UK

Reply via email to