On 5/11/2021 1:49 PM, Martin Sebor via Gcc-patches wrote:
The attached change teaches the uninitialized pass about
__builtin_stack_restore and __builtin___asan_mark to avoid two
classes of -Wuninitialized false negatives.

Richard, you already approved the __builtin_stack_restore change
in the bug but I figured I'd submit a patch with both changes for
approval since they affect the same piece of code.

Martin

gcc-93100.diff

Avoid -Wuninitialized false negatives with sanitization and VLAs.

Resolves:
PR tree-optimization/93100 - gcc -fsanitize=address inhibits -Wuninitialized
PR middle-end/98583 - missing -Wuninitialized reading from a second VLA in its 
own block

gcc/ChangeLog:

        PR tree-optimization/93100
        PR middle-end/98583
        * tree-ssa-uninit.c (check_defs):

gcc/testsuite/ChangeLog:

        PR tree-optimization/93100
        PR middle-end/98583
        * g++.dg/warn/uninit-pr93100.C: New test.
        * gcc.dg/uninit-pr93100.c: New test.
        * gcc.dg/uninit-pr98583.c: New test.

OK.  I wonder if it would make sense to describe this property when we construct the builtin and check that property rather than each builtin we find over time.  Your call on whether or not to explore that.


Jeff

Reply via email to