codeql-coding-standards icon indicating copy to clipboard operation
codeql-coding-standards copied to clipboard

`A15-1-3`: Detection of duplicated exceptions on function templates

Open nbusser opened this issue 1 year ago • 1 comments

Affected rules

  • A15-1-3

Description

When defining a function template which throws an exception, A15-1-3 warning is triggered, meaning that the exception is not unique.

Example

template <typename T>
void false_positive() {
  throw std::runtime_error{"message"}; // Triggers A15-1-3 warning
}

nbusser avatar Jun 01 '24 17:06 nbusser

Thanks for reporting!

This occurs because we have a separate representation for each template instantiation in our database representation of the program, so we consider the exception to be "duplicated" in each instantiation. The AUTOSAR rule does not clarify the expected behaviour in this case, but I believe it would be reasonable to not report this case.

lcartey avatar Jun 07 '24 08:06 lcartey