Ping...

On 10/18/19 3:19 PM, Bernd Edlinger wrote:
> Ping...
> 
> for the c++ FE and testsuite changes in the updated patch
> here: https://gcc.gnu.org/ml/gcc-patches/2019-10/msg00916.html
> 
> 
> Thanks
> Bernd.
> 
> 
> 
> 
> On 10/12/19 8:10 PM, Bernd Edlinger wrote:
>> On 10/11/19 6:31 PM, Jason Merrill wrote:
>>> On 10/10/19 2:06 PM, Bernd Edlinger wrote:
>>>> On 10/10/19 7:49 PM, Jason Merrill wrote:
>>>>
>>>> if -Wshadow=compatible-local is used, the can_convert function crashes
>>>> in instantiate_class_template_1.
>>>
>>> Right, checking can_convert is problematic here, as it can cause template 
>>> instantiations that change the semantics of the program.  Or, in this case, 
>>> crash.
>>>
>>
>> So I try to make C++ behave more consistently with the code in c-decl.c,
>> thus dependent on warn_shadow but not on warn_shadow_local and/or
>> warn_shadow_compatible_local:
>>
>>            if (warn_shadow)
>>               warning_code = OPT_Wshadow;
>>             else if (comptypes (TREE_TYPE (old_decl), TREE_TYPE (new_decl)))
>>               warning_code = OPT_Wshadow_compatible_local;
>>             else
>>               warning_code = OPT_Wshadow_local;
>>             warned = warning_at (DECL_SOURCE_LOCATION (new_decl), 
>> warning_code,
>>                                  "declaration of %qD shadows a parameter",
>>                                  new_decl);
>>
>> I cannot remove the if (warn_shadow) since this breaks gcc.dg/pr48062.c
>> which uses:
>>
>> #pragma GCC diagnostic ignored "-Wshadow"
>>
>> to disable a -Wshadow=compatible-local warning, but while -Wno-shadow on the
>> command line disables also dependent warnings the pragma does not (always) 
>> do that.
>>
>> So instead I'd like to adjust the doc of -Wshadow to reflect the 
>> implementation
>> and remove the if(warn_shadow_local) to have C and C++ behave identical and
>> hopefully now in sync with the doc.
>>
>>
>> Bootstrapped and reg-tested on x86_64-pc-linux-gnu.
>> Is it OK for trunk?
>>
>>
>> Thanks
>> Bernd.
>>

Reply via email to