This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: wide-int, C++ front end


Jason Merrill <jason@redhat.com> writes:
> On 11/23/2013 02:20 PM, Mike Stump wrote:
>> @@ -2605,8 +2606,7 @@ cp_tree_equal (tree t1, tree t2)
>>     switch (code1)
>>       {
>>       case INTEGER_CST:
>> -      return TREE_INT_CST_LOW (t1) == TREE_INT_CST_LOW (t2)
>> -	&& TREE_INT_CST_HIGH (t1) == TREE_INT_CST_HIGH (t2);
>> +      return wi::to_widest (t1) == wi::to_widest (t2);
>
> Why not use wi::eq_p like you do in the C front end?

Thanks for noticing the difference.  I think c_tree_equal should change
to use to_widest too.

wi::eq_p (t1, t2) asserts that t1 and t2 are the same precision and
ignores signedness; it just tests whether they are the same bitstring.
wi::to_widest (t1) == wi::to_widest (t2) compares them as logical numbers,
taking sign into account and allowing different types.  I think that's
what the original TREE_INT_CST_LOW and TREE_INT_CST_HIGH tests did too.

Richard


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]