According to chapter 5.7 of the manual, PC-LINT determines the language from the file extension.
Therefore, one could assume that in a mixed C/C++ project one would get MISRA C messages in C modules and MISRA C++ messages in C++ modules respectively.
In reality this is not working, even if you use the –indirect option to help PC-LINT:

common.h/* included in all modules to select MISRA standard based on language*/
#ifdef __cplusplus
/*lint –indirect(au-misra-cpp.lnt)*/
#else
/*lint –indirect(au-misra3.lnt)*/
#endif

Depending on the order of the modules processed, you end up with MISRA C messages in C++ modules and vice versa.
PC-LINT should be able to filter and or enable/disable MISRA messages based on the language determined.

According to chapter 5.7 of the manual, PC-LINT determines the language from the file extension.
Therefore, one could assume that in a mixed C/C++ project one would get MISRA C messages in C modules and MISRA C++ messages in C++ modules respectively.
In reality this is not working, even if you use the –indirect option to help PC-LINT:

common.h/* included in all modules to select MISRA standard based on language*/
#ifdef __cplusplus
/*lint –indirect(au-misra-cpp.lnt)*/
#else
/*lint –indirect(au-misra3.lnt)*/
#endif

Depending on the order of the modules processed, you end up with MISRA C messages in C++ modules and vice versa.
PC-LINT…

Although "-vo" and "lint usual arguments ?" are useful, they produce a lot of information, including information that sometimes could be considered 'what was noise' such as temporary error suppressions "-save, -e123, -restore"

It would be great if you could add a feature where I could display all options, suppressions, flags, etc. in effect at a specific point in a source file that have been:
a) changed from the defaults, or
b) changed since the last "-save"
c) changed in this file

Although "-vo" and "lint usual arguments ?" are useful, they produce a lot of information, including information that sometimes could be considered 'what was noise' such as temporary error suppressions "-save, -e123, -restore"

It would be great if you could add a feature where I could display all options, suppressions, flags, etc. in effect at a specific point in a source file that have been:
a) changed from the defaults, or
b) changed since the last "-save"
c) changed in this file

We are linting our complete software with different rulesets for its different SW-parts (because some are safety relevant and some are not, i.e. the rulesets differ, but the code analysis must check the software as a whole).

Each SW-part's rulesets has its own active rules/errors + specific messages for the errors, which are added via the "-append()" option.
In the course of action we use the save/restore options to get back to a basic common, global configuration.

While this works well for the error inhibition, with this command call structure finally in the PC-lint log, the latter SW-parts get also all appended messages from the previous ones, i.e. the "-append()" options are not saved/restored with the active errors.

For example in the following PC-lint-log-snippet only the last MISRA category should be added:
>>
#FINDING_DETAILS§"d:\80-Software\src\Module12345.c"§8002§80§Note§9033§Impermissible cast of composite expression (wider essential type for the destination) §MISRA-C:2012 Rule 10.8§ required, §MISRA-C:2012 Rule 10.8§ advisory, §MISRA-C:2012 Rule 10.8§ obligatory)
<<

We are linting our complete software with different rulesets for its different SW-parts (because some are safety relevant and some are not, i.e. the rulesets differ, but the code analysis must check the software as a whole).

Each SW-part's rulesets has its own active rules/errors + specific messages for the errors, which are added via the "-append()" option.
In the course of action we use the save/restore options to get back to a basic common, global configuration.

Lint sees that ownership of allocated memory is taken by a constructor if the owning object isn't "new'd". But if the owning object is "new'd", then Lint does not understand this. See the example below, which works in the online demo.

// This does not result in a 429 warning.
char * ptr2 = (char *) malloc(10);
A a2(ptr2);
}

Lint sees that ownership of allocated memory is taken by a constructor if the owning object isn't "new'd". But if the owning object is "new'd", then Lint does not understand this. See the example below, which works in the online demo.

In PC-lint Plus, suppression options inside a source module do not “leak” to subsequent modules so this is less of an issue for PC-lint Plus than it was for PC-lint but we do plan to add a warning for -save options that do not have corresponding -restore options in a future update to PC-lint Plus.