Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Dec 30, 2019
Merged

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

merged 1 commit into from
Dec 30, 2019

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)?

@@ -51,6 +51,7 @@
*/
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 added 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.

3 participants