While it’s not necessarily in spec, you can put fixed format comments before the **free definition in an rpg program and it will still be recognized by an IBM iSeries as a fully free format program and compile as such. However, when the file is parsed in SonarQube, it fails to see it as such and instead gives warnings as if it were a fixed format program. An easy example of this is as follows:
*---------------------------------------------------------
* Program to test functionality
*---------------------------------------------------------
**free
ctl-opt option(*srcstmt);
*inlr = *on;
In this code, it incorrectly raises the warning on the very first line that it needs a *srcstmt option when it is in fact added later on. None of the code is evaluated correctly, entirely due to the comment block at the start of the program. If the comment block is removed, the warning goes away and it evaluates the rest of the program correctly.