https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98951
Bug ID: 98951
Summary: gcc/cp/call.c: 4 * member functions can be marked
const
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dcb314 at hotmail dot com
Target Milestone: ---
$ fgrep /cp/call.c cppcheck.20210202.out | fgrep functionConst
trunk.git/gcc/cp/call.c:523:8: style:inconclusive: Technically the member
function 'z_candidate::rewritten' can be const. [functionConst]
trunk.git/gcc/cp/call.c:524:8: style:inconclusive: Technically the member
function 'z_candidate::reversed' can be const. [functionConst]
trunk.git/gcc/cp/call.c:9477:8: style:inconclusive: Technically the member
function '::NonPublicField::operator()' can be const. [functionConst]
trunk.git/gcc/cp/call.c:9494:8: style:inconclusive: Technically the member
function '::NonTrivialField::operator()' can be const. [functionConst]
$
I tried the obvious diff:
$ git diff gcc/cp/call.c
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index 87a7af12796..0467c2ef3eb 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -520,8 +520,8 @@ struct z_candidate {
/* The flags active in add_candidate. */
int flags;
- bool rewritten () { return (flags & LOOKUP_REWRITTEN); }
- bool reversed () { return (flags & LOOKUP_REVERSED); }
+ bool rewritten () const { return (flags & LOOKUP_REWRITTEN); }
+ bool reversed () const { return (flags & LOOKUP_REVERSED); }
};
/* Returns true iff T is a null pointer constant in the sense of
@@ -9474,7 +9474,7 @@ first_non_static_field (tree type, Predicate pred)
struct NonPublicField
{
- bool operator() (const_tree t)
+ bool operator() (const_tree t) const
{
return DECL_P (t) && (TREE_PRIVATE (t) || TREE_PROTECTED (t));
}
@@ -9491,7 +9491,7 @@ first_non_public_field (tree type)
struct NonTrivialField
{
- bool operator() (const_tree t)
+ bool operator() (const_tree t) const
{
return !trivial_type_p (DECL_P (t) ? TREE_TYPE (t) : t);
}
and it seems to build ok.