[previous] 3831 [next] Implicit conversion: long double to double.
Arithmetic type - Implicit conversions

An expression of type long double is being implicitly converted to type double. 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(double p);

extern double foo(long double v)
{
    double a = v;               /* Message 3831 */

    a = v;                      /* Message 3831 */

    ef(v);                      /* Message 3831 */

    return v;                   /* Message 4031 */
}


No MISRA C:2012 Rules applicable to message 3831


See also:

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