C and C++


LANG.STRUCT.MRS : Missing Return Statement

Summary

At least one path through a non-void return-type function does not contain a return statement.

Properties

Class Name Missing Return Statement
Significance reliability
Mnemonic LANG.STRUCT.MRS
Categories
MisraC2023 MisraC2023:17.4 All exit paths from a function with non-void return type shall have an explicit return statement with an expression
Misra2012 Misra2012:17.4 All exit paths from a function with non-void return type shall have an explicit return statement with an expression
Misra2004 Misra2004:16.8 All exit paths from a function with non-void return type shall have an explicit return statement with an expression
AUTOSARC++14 AUTOSARC++14:A1-1-1 All code shall conform to ISO/IEC 14882:2014 - Programming Language C++ and shall not use deprecated features.
  AUTOSARC++14:A8-4-2 All exit paths from a function with non-void return type shall have an explicit return statement with an expression.
MisraC++2008 MisraC++2008:8-4-3 All exit paths from a function with non-void return type shall have an explicit return statement with an expression.
MisraC++2023 MisraC++2023:4.1.2 Deprecated features should not be used
  MisraC++2023:9.6.5 A function with non-void return type shall return a value on all paths
CWE CWE:758 Reliance on Undefined, Unspecified, or Implementation-Defined Behavior
  CWE:1076 Insufficient Adherence to Expected Conventions
  CWE:1120 Excessive Code Complexity
CERT-C CERT-C:MSC37-C Ensure that control never reaches the end of a non-void function
CERT-CPP CERT-CPP:MSC52-CPP Value-returning functions must return a value from all exit paths
Availability Available for C and C++.
Enabling Checks for this warning class are enabled by default. To disable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += discard class="Missing Return Statement"

Example

int lang_struct_mrs(int j) {
    if (j == 1) return 2; 
    else if (j==2) return 1; 
}                             /* 'Missing Return Statement' warning issued here */

int main(void) {
    int ret = lang_struct_mrs(3);
    return ret;
}

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.