The analyzer has detected a declared function type with the 'const' or 'volatile' qualifiers in C code. Using these types leads to undefined behavior, as specified in Clause 10 of Paragraph 6.7.4.1 in C23.
The code example where the analyzer issues warnings:
typedef int fun_t(void);
typedef const fun_t const_qual_fun_t; // V1117
typedef const fun_t * ptr_to_const_qual_fun_t; // V1117
void foo()
{
const fun_t c_fun_t; // V1117
const fun_t * ptr_c_fun_t; // V1117
}
To ensure proper functionality, the 'const' qualifier should be removed when declaring the function type. The fixed code looks like this:
typedef int fun_t(void);
typedef fun_t const_qual_fun_t; // ok
typedef fun_t * ptr_to_const_qual_fun_t; // ok
void foo()
{
fun_t c_fun_t; // ok
fun_t * ptr_c_fun_t; // ok
}