analyzer: Handle strdup builtins
commit31534ac26e0ec1deeb648b2548dbbe17574ea78c
authorSiddhesh Poyarekar <siddhesh@gotplt.org>
Wed, 28 Jul 2021 10:13:47 +0000 (28 15:43 +0530)
committerSiddhesh Poyarekar <siddhesh@gotplt.org>
Wed, 28 Jul 2021 12:13:26 +0000 (28 17:43 +0530)
tree67774fc3af199a51173eb4f0f477bfb6181b5c3c
parent84606efb0c6b1c1598d5ec6b05544e71596663b5
analyzer: Handle strdup builtins

Consolidate allocator builtin handling and add support for
__builtin_strdup and __builtin_strndup.

gcc/analyzer/ChangeLog:

* analyzer.cc (is_named_call_p, is_std_named_call_p): Make
first argument a const_tree.
* analyzer.h (is_named_call_p, -s_std_named_call_p): Likewise.
* sm-malloc.cc (known_allocator_p): New function.
(malloc_state_machine::on_stmt): Use it.

gcc/testsuite/ChangeLog:

* gcc.dg/analyzer/strdup-1.c (test_4, test_5, test_6): New
tests.
gcc/analyzer/analyzer.cc
gcc/analyzer/analyzer.h
gcc/analyzer/sm-malloc.cc
gcc/testsuite/gcc.dg/analyzer/strdup-1.c