[previous] 3238 [next] [C] inline function '%1s' has external linkage and is referring to an object, '%2s', with internal linkage.
Constraint violations REFERENCE - ISO:C99-6.7.4 Function specifiers - Constraints

This is a constraint error

An inline function with external linkage may not refer to an identifier with internal linkage.

Defining an inline function with external linkage is always dangerous and it is recommended that inline should only be used on functions which are declared static.

For example:


/*PRQA S 1055,2017,2213,3132,3218,3219,3227,3240,3602 ++*/

static const int a[5] = {10, 20, 30, 40, 50};

inline int f1(int n)
{
    return a[n];                                /* 3238 */
}

static inline int f2(int n)
{
    return a[n];                                /* OK   */
}

QA·C Source Code Analyser 8.1.2
© 2013 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index Contents