V660. Program contains an unused label and function call: 'CC:AA()'. Probably meant: 'CC::AA()'.
The analyzer has detected a potential error when the programmer makes a misprint writing ':' instead of '::'.
An unused label is found in the code of a class method. This label is followed by a function call. The analyzer considers it dangerous when a function with such a name is placed inside one of the base classes.
Consider the following sample:
class Employee {
public:
void print() const {}
};
class Manager: public Employee {
void print() const;
};
void Manager::print() const {
Employee:print();
}
The line 'Employee:print();' is very likely to be incorrect. The error is this: unlike it was intended, the function from the own class 'Manager' is called instead of the function from the 'Employee' class. To fix the error we just need to replace ':' with '::'.
This is the fixed code:
void Manager::print() const {
Employee::print();
}
Here's one more sample:
namespace Abcd
{
void Foo() {}
}
class Employee {
void Foo() {}
void X() { Abcd:Foo(); }
};
The error here is this: the function within the scope of 'Abcd' should have been called. This error is easy to fix:
void X() { Abcd::Foo(); }
This diagnostic is classified as: