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

`RULE-11-9`: Consider more types of assignment

Open lcartey opened this issue 5 months ago • 0 comments

Affected rules

  • RULE-11-9

Description

Rule 11.9 prohibits the use of 0 as a null pointer constant when assigning to a pointer. However, we do not capture all the types of assignments. The Glossary (Appendix J) states:

Assigned

An expression is assigned if it is the subject of an assignment.

Assignment

It is sometimes convenient to use the term assignment to denote any operation which takes place as if it were by assignment. The operations covered by this term are: • Assignment by means of one of the assignment operators; • Passing an argument to a function, in which case the argument is copied as if by assignment to the corresponding parameter; • Returning an expression from a function, in which case the result is copied as if by assignment to an object with the function’s return type; • Using an expression to initialize all or part of an object, including a compound literal in C99, in which case the expression is copied as if by assignment to the destination.

This may also impact other MISRA rules that refer to the term assignment or assigned.

Example

void* myfunc() {
  return 0; // NON_COMPLIANT
}

lcartey avatar Sep 06 '24 09:09 lcartey