From 9f00b22f98ec0688fcd9816a03aa3f7eea58bcf7 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Thu, 27 Feb 2020 14:19:33 -0500 Subject: 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 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. --- gcc/analyzer/ChangeLog | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gcc/analyzer/ChangeLog') diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog index 5fbaec3..e5d7bdb 100644 --- a/gcc/analyzer/ChangeLog +++ b/gcc/analyzer/ChangeLog @@ -1,3 +1,12 @@ +2020-03-02 David Malcolm + + 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. + 2020-02-26 David Malcolm PR analyzer/93950 -- cgit v1.1