aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-alias.c
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2020-02-27 14:19:33 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2020-03-02 16:40:23 -0500
commit9f00b22f98ec0688fcd9816a03aa3f7eea58bcf7 (patch)
treee3ee554f9d502225feb1db5f03b3ba60ad26c356 /gcc/tree-ssa-alias.c
parentcd14f288ddf246d40f109aa7999b99a44739cd99 (diff)
downloadgcc-9f00b22f98ec0688fcd9816a03aa3f7eea58bcf7.zip
gcc-9f00b22f98ec0688fcd9816a03aa3f7eea58bcf7.tar.gz
gcc-9f00b22f98ec0688fcd9816a03aa3f7eea58bcf7.tar.bz2
analyzer: detect malloc, free, calloc within "std" [PR93959]
PR analyzer/93959 reported that g++.dg/analyzer/malloc.C was failing with no output on Solaris. The issue is that <stdlib.h> there has "using std::free;", converting all the "free" calls to std::free, which fails the name-matching via is_named_call_p. This patch implements an is_std_named_call_p variant of is_named_call_p to check for the name within "std", and uses it in sm-malloc.c to check for std::malloc, std::calloc, and std::free. gcc/analyzer/ChangeLog: PR analyzer/93959 * analyzer.cc (is_std_function_p): New function. (is_std_named_call_p): New functions. * analyzer.h (is_std_named_call_p): New decl. * sm-malloc.cc (malloc_state_machine::on_stmt): Check for "std::" variants when checking for malloc, calloc and free. gcc/testsuite/ChangeLog: PR analyzer/93959 * g++.dg/analyzer/cstdlib-2.C: New test. * g++.dg/analyzer/cstdlib.C: New test.
Diffstat (limited to 'gcc/tree-ssa-alias.c')
0 files changed, 0 insertions, 0 deletions