In this section:
Overview
Insure++ checks that each function returns a result consistent with its declared data type, and that a function with a declared return type actually returns an appropriate value.
Additional configuration required
In order for Insure++ to find this error, the suppressEDGWarning off
option is required.
Code Description Enabled Reported Platform RETURN_INCONSISTENT Function has inconsistent return type Compilation Windows/Unix (level 1) No declaration, returns nothing Compilation Windows/Unix (level 2) Declared int,
returns nothingCompilation Windows/Unix (level 3) Declared non- int
, returns nothingCompilation Windows/Unix (level 4) Returns different types at different statements Compilation Windows/Unix
Problem
The following code demonstrates an inconsistent return error:
/* * File: retinc.c */ func() { return; }
Diagnosis During Compilation
[retinc.c:4] **RETURN_INCONSISTENT** Function has an inconsistent return type. >> func() {
- Line 1: Source line at which the problem was detected.
- Line 2: Description of the error and the parameters used.
Repair
Correct inconsistent return errors by either adding appropriate declarations or by making the return type consistent with the function declaration.
/* * File: retinc.c */ void func() { return; }
/* * File: retinc.c */ int func() { return 0; }