>
>
>
V660. Program contains an unused label …


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: