Skip to content

Commit ebd28d7

Browse files
committed
Add rule package files
1 parent 0f5bb42 commit ebd28d7

File tree

9 files changed

+104
-0
lines changed

9 files changed

+104
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//** THIS FILE IS AUTOGENERATED, DO NOT MODIFY DIRECTLY. **/
2+
import cpp
3+
import RuleMetadata
4+
import codingstandards.cpp.exclusions.RuleMetadata
5+
6+
newtype Memory5Query = TDynamicMemoryManagedManuallyQuery()
7+
8+
predicate isMemory5QueryMetadata(Query query, string queryId, string ruleId, string category) {
9+
query =
10+
// `Query` instance for the `dynamicMemoryManagedManually` query
11+
Memory5Package::dynamicMemoryManagedManuallyQuery() and
12+
queryId =
13+
// `@id` for the `dynamicMemoryManagedManually` query
14+
"cpp/misra/dynamic-memory-managed-manually" and
15+
ruleId = "RULE-21-6-2" and
16+
category = "required"
17+
}
18+
19+
module Memory5Package {
20+
Query dynamicMemoryManagedManuallyQuery() {
21+
//autogenerate `Query` type
22+
result =
23+
// `Query` type for `dynamicMemoryManagedManually` query
24+
TQueryCPP(TMemory5PackageQuery(TDynamicMemoryManagedManuallyQuery()))
25+
}
26+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//** THIS FILE IS AUTOGENERATED, DO NOT MODIFY DIRECTLY. **/
2+
import cpp
3+
import RuleMetadata
4+
import codingstandards.cpp.exclusions.RuleMetadata
5+
6+
newtype Memory6Query = TAdvancedMemoryManagementUsedQuery()
7+
8+
predicate isMemory6QueryMetadata(Query query, string queryId, string ruleId, string category) {
9+
query =
10+
// `Query` instance for the `advancedMemoryManagementUsed` query
11+
Memory6Package::advancedMemoryManagementUsedQuery() and
12+
queryId =
13+
// `@id` for the `advancedMemoryManagementUsed` query
14+
"cpp/misra/advanced-memory-management-used" and
15+
ruleId = "RULE-21-6-3" and
16+
category = "required"
17+
}
18+
19+
module Memory6Package {
20+
Query advancedMemoryManagementUsedQuery() {
21+
//autogenerate `Query` type
22+
result =
23+
// `Query` type for `advancedMemoryManagementUsed` query
24+
TQueryCPP(TMemory6PackageQuery(TAdvancedMemoryManagementUsedQuery()))
25+
}
26+
}

cpp/common/src/codingstandards/cpp/exclusions/cpp/RuleMetadata.qll

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ import Macros
4545
import Memory2
4646
import Memory3
4747
import Memory4
48+
import Memory5
49+
import Memory6
4850
import MoveForward
4951
import Naming
5052
import Naming2
@@ -117,6 +119,8 @@ newtype TCPPQuery =
117119
TMemory2PackageQuery(Memory2Query q) or
118120
TMemory3PackageQuery(Memory3Query q) or
119121
TMemory4PackageQuery(Memory4Query q) or
122+
TMemory5PackageQuery(Memory5Query q) or
123+
TMemory6PackageQuery(Memory6Query q) or
120124
TMoveForwardPackageQuery(MoveForwardQuery q) or
121125
TNamingPackageQuery(NamingQuery q) or
122126
TNaming2PackageQuery(Naming2Query q) or
@@ -189,6 +193,8 @@ predicate isQueryMetadata(Query query, string queryId, string ruleId, string cat
189193
isMemory2QueryMetadata(query, queryId, ruleId, category) or
190194
isMemory3QueryMetadata(query, queryId, ruleId, category) or
191195
isMemory4QueryMetadata(query, queryId, ruleId, category) or
196+
isMemory5QueryMetadata(query, queryId, ruleId, category) or
197+
isMemory6QueryMetadata(query, queryId, ruleId, category) or
192198
isMoveForwardQueryMetadata(query, queryId, ruleId, category) or
193199
isNamingQueryMetadata(query, queryId, ruleId, category) or
194200
isNaming2QueryMetadata(query, queryId, ruleId, category) or
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* @id cpp/misra/dynamic-memory-managed-manually
3+
* @name RULE-21-6-2: Dynamic memory shall be managed automatically
4+
* @description Dynamically allocated memory must not be managed manually.
5+
* @kind problem
6+
* @precision very-high
7+
* @problem.severity error
8+
* @tags external/misra/id/rule-21-6-2
9+
* scope/single-translation-unit
10+
* external/misra/enforcement/decidable
11+
* external/misra/obligation/required
12+
*/
13+
14+
import cpp
15+
import codingstandards.cpp.misra
16+
17+
from
18+
where
19+
not isExcluded(x, Memory5Package::dynamicMemoryManagedManuallyQuery()) and
20+
select
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* @id cpp/misra/advanced-memory-management-used
3+
* @name RULE-21-6-3: Advanced memory management shall not be used
4+
* @description Using advanced memory management that either alters allocation and deallocation or
5+
* constructs object construction on uninitalized memory may result in undefined
6+
* behavior.
7+
* @kind problem
8+
* @precision very-high
9+
* @problem.severity error
10+
* @tags external/misra/id/rule-21-6-3
11+
* scope/single-translation-unit
12+
* external/misra/enforcement/decidable
13+
* external/misra/obligation/required
14+
*/
15+
16+
import cpp
17+
import codingstandards.cpp.misra
18+
19+
from
20+
where
21+
not isExcluded(x, Memory6Package::advancedMemoryManagementUsedQuery()) and
22+
select
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
No expected results have yet been specified
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rules/RULE-21-6-2/DynamicMemoryManagedManually.ql
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
No expected results have yet been specified
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rules/RULE-21-6-3/AdvancedMemoryManagementUsed.ql

0 commit comments

Comments
 (0)