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;
}