[previous] 4019 [next] double value returned from float %s().
Arithmetic type - Implicit conversions

An expression of type double is being implicitly converted to type float. This may result in a loss of precision unless the 2 types happen to be implemented with the same representation. If the value is very large, it is possible that it cannot be represented at all, in which case the result will be undefined.

Implicit type conversions of this nature can occur in the context of:

Make sure that you are aware of the type sizes that are implemented when this code is compiled and ensure that QAC is appropriately configured to be consistent. Type sizes in QAC are configured using the -size option (compiler personality).

For example:


/*PRQA S 2017,3197,3199,3203,3227,3408,3447,3602,3625 ++*/

extern void ef(float p);

extern float foo(double v)
{
    float a = v;                /* Message 3819 */

    a = v;                      /* Message 3819 */

    ef(v);                      /* Message 3819 */

    return v;                   /* Message 4019 */
}


No MISRA-C:2004 Rules applicable to message 4019


See also:

QA·C Source Code Analyser 8.1
MISRA-C:2004 Compliance Module 3.2
© 2012 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index | MISRA-C:2004 Rule Index Contents