- Notifications
You must be signed in to change notification settings - Fork70
Implement final MISRA C 2023 rule amendments#872
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Pull Request Overview
This PR implements the final amendments for MISRA C 2023 by updating change notes for several CodeQL queries.
- Updated change notes for
DIR-4-9, clarifying that macros with_Genericare no longer reported - Updated change notes for
RULE-1-4, indicating the ban on usage of_Genericshas been removed - Added change notes for new query
RULE-18-6detecting thread local objects assigned to static storage duration objects, and updated notes forRULE-21-12to report usage of certain functions in "fenv.h"
Tip: Copilot code review supports C#, Go, Java, JavaScript, Markdown, Python, Ruby and TypeScript, with more languages coming soon.Learn more
Uh oh!
There was an error while loading.Please reload this page.
c/misra/src/rules/RULE-18-6/ThreadLocalObjectAddressCopiedToGlobalObject.qlShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
…al-misra-c-rule-amendments
0fd4496Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Description
This covers all of the remaining rule amendments for MISRA C 2023.
Ideally for 18-6, we eventually support tss_t as an
ObjectIdentity. However, it's a little tricky because currentlyObjectIdentityextendsElement, and atss_tis already aVariableObjectIdentity(the tss_t object itself, not the thread storage it points to). So we can't simply overrideObjectIdentityfortss_tobjects to make a new thread local. Additionally, we could treat eachtss_get()call as anObjectIdentitybut that diverges from the intention of the class, because thetss_getcall doesn't identify the object, its thetss_tvariable that identifies it.We can open an issue and worry about that later if we wish. For now, we cover
_Thread_localvariables more comprehensively thantss_ts, which is probably A-OK.Change request type
.ql,.qll,.qlsor unit tests)Rules with added or modified queries
RULE-18-6- new rule to handle new case (thread locals assigned to static storage duration objects)DIR-4-9RULE-1-4,RULE-21-12Release change checklist
A change note (development_handbook.md#change-notes) is required for any pull request which modifies:
If you are only adding new rule queries, a change note is not required.
Author: Is a change note required?
🚨🚨🚨
Reviewer: Confirm that format ofshared queries (not the .qll file, the
.ql file that imports it) is valid by running them within VS Code.
Reviewer: Confirm that either a change note is not required or the change note is required and has been added.
Query development review checklist
For PRs that add new queries or modify existing queries, the following checklist should be completed by both the author and reviewer:
Author
As a rule of thumb, predicates specific to the query should take no more than 1 minute, and for simple queries be under 10 seconds. If this is not the case, this should be highlighted and agreed in the code review process.
Reviewer
As a rule of thumb, predicates specific to the query should take no more than 1 minute, and for simple queries be under 10 seconds. If this is not the case, this should be highlighted and agreed in the code review process.