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
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/os/portable/os-impl-posix-dl.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.

void *dl_handle;
} OS_impl_module_internal_record_t;

Expand Down
2 changes: 1 addition & 1 deletion src/os/posix/os-posix.h
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ int32 OS_Posix_StreamAPI_Impl_Init(void);
int32 OS_Posix_DirAPI_Impl_Init(void);
int32 OS_Posix_FileSysAPI_Impl_Init(void);

int32 OS_Posix_InternalTaskCreate_Impl (pthread_t *thr, uint32 priority, size_t stacksz, PthreadFuncPtr_t Entry, void *entry_arg);
int32 OS_Posix_InternalTaskCreate_Impl (pthread_t *pthr, uint32 priority, size_t stacksz, PthreadFuncPtr_t entry, void *entry_arg);



2 changes: 1 addition & 1 deletion src/os/posix/osapi.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ const OS_ErrorTable_Entry_t OS_IMPL_ERROR_NAME_TABLE[] = { { 0, NULL } };
/*
* Local Function Prototypes
*/
static void OS_CompAbsDelayTime( uint32 milli_second , struct timespec * tm);
static void OS_CompAbsDelayTime( uint32 msecs , struct timespec * tm);
static int OS_PriorityRemap(uint32 InputPri);


Expand Down
1 change: 1 addition & 0 deletions src/os/rtems/osloader.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
*/
typedef struct
{
/* cppcheck-suppress unusedStructMember */
void *dl_handle;
} OS_impl_module_internal_record_t;

Expand Down