Skip to content

issue #308, Resolve cpp warning in os dir.#310

Merged
skliper merged 1 commit intonasa:merge-20191230from
avan989:cppcheck_os
Dec 30, 2019
Merged

issue #308, Resolve cpp warning in os dir.#310
skliper merged 1 commit intonasa:merge-20191230from
avan989:cppcheck_os

Conversation

@avan989
Copy link
Contributor

@avan989 avan989 commented Dec 12, 2019

Describe the contribution
Resolve cppcheck for os dir. Possible cppcheck bug for structure member - suppress.

Testing performed
Steps taken to test the contribution:

  1. make prep, make, make install
  2. run

System(s) tested on:

  • Hardware
  • Ubuntu 18.04
  • CFE 6.6

Contributor Info
Anh Van, NASA Goddard

Copy link
Contributor

@jphickey jphickey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Conditionally approved, but I would like to confirm if there isn't some other way to avoid the cppcheck warning other than the inline suppression (e.g. by telling it that OS_MAX_MODULES > 0 or just giving it the path to osconfig.h)?

*/
typedef struct
{
/* cppcheck-suppress unusedStructMember */
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems suspicious because the dl_handle is absolutely used, but the code is conditional upon OS_MAX_MODULES > 0 in the config.

Maybe cppcheck is complaining because it doesn't know what OS_MAX_MODULES is set to, therefore assumes that the conditional is false?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right. Cppcheck is checking both conditions. I prefer this specific suppression vs passing in OS_MAX_MODULES to cppcheck, in that I don't really care about this specific warning but if future ones show up for that condition being false I want to know.

Alternatively, if the condition really can never happen, then it probably shouldn't be there (and add a verify that OS_MAX_MODULES > 0).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The condition of OS_MAX_MODULES being 0 can happen. But in that case the structure isn't instantiated at all. cppcheck just does not know that.

I think a better long-term solution would be to work this into the cmake-based osconfig options (to replace the preprocessor-based logic). This will get rid of these types of #if conditionals in here and probably clear up this warning too.

@skliper skliper added the CCB:Approved Indicates code review and approval by community CCB label Dec 18, 2019
@skliper skliper added this to the 5.1.0 milestone Dec 18, 2019
@skliper
Copy link
Contributor

skliper commented Dec 18, 2019

CCB 20191218 - Reviewed and approved for IC

@skliper skliper changed the base branch from master to merge-20191230 December 30, 2019 21:09
@skliper skliper merged commit ca742b0 into nasa:merge-20191230 Dec 30, 2019
skliper pushed a commit that referenced this pull request Dec 30, 2019
Fix #295, #298, #305, #307, #308,
    #313, #314, #316, #321, #323
Reviewed and approved at 2019-12-18 CCB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CCB:Approved Indicates code review and approval by community CCB

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants