FreeRTOS / FreeRTOS-Kernel

FreeRTOS kernel files only, submoduled into https://github.com/FreeRTOS/FreeRTOS and various other repos.
https://www.FreeRTOS.org
MIT License
2.76k stars 1.12k forks source link

Fix MISRA C 2012 Rule 10.3 errors #860

Closed chinglee-iot closed 11 months ago

chinglee-iot commented 1 year ago

Fix MISRA C 2012 Rule 10.3 errors

Description

MISRA C 2012 Rule 10.3

The value of an expression shall not be assigned to an object with a narrower essential type or of a different essential type category.

MISRA violation The size of constant with suffix UL is different for different compiler.

For example, sizeof( 0x01000000UL ) is 4 if using 32-bits GCC compiler. However, it is 8 if using 64-btis GCC compiler. Therefore, assigning a constant with suffix UL to a uint32_t can cause implicit conversion which may lead to unintended result.

The following is an example of the violation. Size of constant eventEVENT_BITS_CONTROL_BYTES is 8 with 64-bits GCC compiler. The statement uxReturn &= ~eventEVENT_BITS_CONTROL_BYTES; causes implicit conversion.

#define eventEVENT_BITS_CONTROL_BYTES 0xff000000UL

UBaseType_t uxReturn;
...
uxReturn &= ~eventEVENT_BITS_CONTROL_BYTES;

Fix In this PR

Test Steps

N/A

Checklist:

Related Issue

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

codecov[bot] commented 1 year ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (76f3aa5) 93.64% compared to head (9a25940) 93.64%.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #860 +/- ## ======================================= Coverage 93.64% 93.64% ======================================= Files 6 6 Lines 3179 3179 Branches 885 885 ======================================= Hits 2977 2977 Misses 95 95 Partials 107 107 ``` | [Flag](https://app.codecov.io/gh/FreeRTOS/FreeRTOS-Kernel/pull/860/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=FreeRTOS) | Coverage Δ | | |---|---|---| | [unittests](https://app.codecov.io/gh/FreeRTOS/FreeRTOS-Kernel/pull/860/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=FreeRTOS) | `93.64% <100.00%> (ø)` | | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=FreeRTOS#carryforward-flags-in-the-pull-request-comment) to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

sonarcloud[bot] commented 11 months ago

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication