[PATCH] analyzer: Impose recursion limit on indirect calls.

Ankur Saini arsenic.secondary@gmail.com
Wed Aug 25 15:55:06 GMT 2021



> On 25-Aug-2021, at 8:35 PM, David Malcolm <dmalcolm@redhat.com> wrote:
> 
> On Wed, 2021-08-25 at 20:31 +0530, Ankur Saini wrote:
>> 
>> 
>>> On 25-Aug-2021, at 7:24 PM, Martin Liška <mliska@suse.cz> wrote:
>>> 
>>> On 8/25/21 15:22, David Malcolm via Gcc-patches wrote:
>>>> On Wed, 2021-08-25 at 13:39 +0530, Ankur Saini wrote:
>>>>> This should also fix the failing regression found in PR
>>>>> analyzer/101980.
>>>>> 
>>>>> - The patch is in sync with current master
>>>>> - successfully bootstrapped and tested on x86_64-linux-gnu.
>>>>> 
>>>> The patch is OK for trunk.
>>>> Thanks for fixing this
>>>> Dave
>>> 
>>> Hello.
>>> 
>>> Quite accidentally, but I noticed the patch violates GNU coding
>>> style:
>>> 
>>> $ git show 43a5d46feabd93ba78983919234f05f5fc9a0982 |
>>> ./contrib/check_GNU_style.py -
>>> 
>>> === ERROR type #1: blocks of 8 spaces should be replaced with tabs
>>> (8 error(s)) ===
>>> 
>>> gcc/analyzer/engine.cc:3064:0:████████ that exceed it further.
>>> 
>>> gcc/analyzer/engine.cc:3065:0:████████ This is something of a blunt
>>> workaround, but it only
>>> 
>>> gcc/analyzer/engine.cc:3066:0:████████ applies to recursion (and
>>> mutual recursion), not to
>>> 
>>> gcc/analyzer/engine.cc:3067:0:████████ general call stacks.  */
>>> 
>>> gcc/analyzer/engine.cc:3069:0:████████  >
>>> param_analyzer_max_recursion_depth)
>>> 
>>> gcc/analyzer/engine.cc:3071:0:████████if (logger)
>>> 
>>> gcc/analyzer/engine.cc:3072:0:████████  logger->log ("rejecting
>>> call edge: recursion limit exceeded");
>>> 
>>> gcc/analyzer/engine.cc:3073:0:████████return false;
>>> 
>> 
>> Looks like my editor again converted all the tabs to spaces.
>> 
>> btw, I can also see a lot of other places where 8 spaces are not
>> begin converted to tabs, should I also change that accordingly or
>> leave them the way it is and just update this patch ?
> 
> It's usually best to split out bugfixes from formatting/whitespace
> changes, so maybe do it as two patches:
> 
> (1) an updated version of this patch to fix the recursion issue, using
> the correct whitespace for the lines that are touched

unfortunately, I already checked in and pushed the changes to the master before this was pointed out. But I can add them to the whitespace issue patch.

> 
> (2) a patch that fixes whitespaces issues, but doesn't change the
> behavior of the code
> 
> 
> Dave



More information about the Gcc-patches mailing list