On Sep 5, 2013, at 2:00 PM, Richard Sandiford <rdsandif...@googlemail.com> 
wrote:
> Ping.  I should have said that bootstrapping with rtl checking enabled
> is broken as things stand.

Yes, this is fine.

> Richard Sandiford <rdsandif...@googlemail.com> writes:
>> Mike Stump <mikest...@comcast.net> writes:
>>> @@ -643,12 +653,14 @@ equality.  */
>>>                            __FUNCTION__);                           \
>>>      &_rtx->u.hwint[_n]; }))
>>> 
>>> -#define XHWIVEC_ELT(HWIVEC, I) __extension__                               
>>> \
>>> -(*({ __typeof (HWIVEC) const _hwivec = (HWIVEC); const int _i = (I);       
>>> \
>>> -     if (_i < 0 || _i >= HWI_GET_NUM_ELEM (_hwivec))                       
>>> \
>>> -       hwivec_check_failed_bounds (_hwivec, _i, __FILE__, __LINE__,        
>>> \
>>> -                             __FUNCTION__);                        \
>>> -     &_hwivec->elem[_i]; }))
>>> +#define CWI_ELT(RTX, I) __extension__                                      
>>> \
>>> +(*({ __typeof (RTX) const _rtx = (RTX);                                    
>>> \
>>> +     int _max = CWI_GET_NUM_ELEM (_rtx);                           \
>> 
>> CWI_GET_NUM_ELEM also uses "_rtx" for its temporary variable, so the
>> last line includes the equivalent of:
>> 
>>  __typeof (_rtx) _rtx = _rtx;
>> 
>> Is the fix below OK?  We do a similar thing for block symbols, etc.
>> 
>> Thanks,
>> Richard
>> 
>> 
>> Index: gcc/rtl.h
>> ===================================================================
>> --- gcc/rtl.h        2013-09-01 14:00:21.032885857 +0100
>> +++ gcc/rtl.h        2013-09-01 17:41:49.474023618 +0100
>> @@ -654,13 +654,13 @@ #define XWINT(RTX, N) __extension__
>>      &_rtx->u.hwint[_n]; }))
>> 
>> #define CWI_ELT(RTX, I) __extension__                                        
>> \
>> -(*({ __typeof (RTX) const _rtx = (RTX);                                     
>> \
>> -     int _max = CWI_GET_NUM_ELEM (_rtx);                            \
>> +(*({ __typeof (RTX) const _cwi = (RTX);                                     
>> \
>> +     int _max = CWI_GET_NUM_ELEM (_cwi);                            \
>>      const int _i = (I);                                             \
>>      if (_i < 0 || _i >= _max)                                               
>> \
>> -       cwi_check_failed_bounds (_rtx, _i, __FILE__, __LINE__,       \
>> +       cwi_check_failed_bounds (_cwi, _i, __FILE__, __LINE__,               
>> \
>>                              __FUNCTION__);                          \
>> -     &_rtx->u.hwiv.elem[_i]; }))
>> +     &_cwi->u.hwiv.elem[_i]; }))
>> 
>> #define XCWINT(RTX, N, C) __extension__                                      
>> \
>> (*({ __typeof (RTX) const _rtx = (RTX);                                      
>> \

Reply via email to