Skip to content

Commit df95b6c

Browse files
committed
Check in rule description files
1 parent 262768a commit df95b6c

File tree

6 files changed

+75
-0
lines changed

6 files changed

+75
-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 Memory2Query = TPointerDifferenceTakenBetweenDifferentArraysQuery()
7+
8+
predicate isMemory2QueryMetadata(Query query, string queryId, string ruleId, string category) {
9+
query =
10+
// `Query` instance for the `pointerDifferenceTakenBetweenDifferentArrays` query
11+
Memory2Package::pointerDifferenceTakenBetweenDifferentArraysQuery() and
12+
queryId =
13+
// `@id` for the `pointerDifferenceTakenBetweenDifferentArrays` query
14+
"cpp/misra/pointer-difference-taken-between-different-arrays" and
15+
ruleId = "RULE-8-7-2" and
16+
category = "required"
17+
}
18+
19+
module Memory2Package {
20+
Query pointerDifferenceTakenBetweenDifferentArraysQuery() {
21+
//autogenerate `Query` type
22+
result =
23+
// `Query` type for `pointerDifferenceTakenBetweenDifferentArrays` query
24+
TQueryCPP(TMemory2PackageQuery(TPointerDifferenceTakenBetweenDifferentArraysQuery()))
25+
}
26+
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import Linkage2
4040
import Literals
4141
import Loops
4242
import Macros
43+
import Memory2
4344
import MoveForward
4445
import Naming
4546
import Null
@@ -105,6 +106,7 @@ newtype TCPPQuery =
105106
TLiteralsPackageQuery(LiteralsQuery q) or
106107
TLoopsPackageQuery(LoopsQuery q) or
107108
TMacrosPackageQuery(MacrosQuery q) or
109+
TMemory2PackageQuery(Memory2Query q) or
108110
TMoveForwardPackageQuery(MoveForwardQuery q) or
109111
TNamingPackageQuery(NamingQuery q) or
110112
TNullPackageQuery(NullQuery q) or
@@ -170,6 +172,7 @@ predicate isQueryMetadata(Query query, string queryId, string ruleId, string cat
170172
isLiteralsQueryMetadata(query, queryId, ruleId, category) or
171173
isLoopsQueryMetadata(query, queryId, ruleId, category) or
172174
isMacrosQueryMetadata(query, queryId, ruleId, category) or
175+
isMemory2QueryMetadata(query, queryId, ruleId, category) or
173176
isMoveForwardQueryMetadata(query, queryId, ruleId, category) or
174177
isNamingQueryMetadata(query, queryId, ruleId, category) or
175178
isNullQueryMetadata(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/pointer-difference-taken-between-different-arrays
3+
* @name RULE-8-7-2: Subtraction between pointers shall only be applied to ones that address elements of the same array
4+
* @description Pointer difference should be taken from pointers that belong to a same array.
5+
* @kind problem
6+
* @precision very-high
7+
* @problem.severity error
8+
* @tags external/misra/id/rule-8-7-2
9+
* scope/system
10+
* external/misra/enforcement/undecidable
11+
* external/misra/obligation/required
12+
*/
13+
14+
import cpp
15+
import codingstandards.cpp.misra
16+
17+
from
18+
where
19+
not isExcluded(x, Memory2Package::pointerDifferenceTakenBetweenDifferentArraysQuery()) and
20+
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-8-7-2/PointerDifferenceTakenBetweenDifferentArrays.ql

rule_packages/cpp/Memory2.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"MISRA-C++-2023": {
3+
"RULE-8-7-2": {
4+
"properties": {
5+
"enforcement": "undecidable",
6+
"obligation": "required"
7+
},
8+
"queries": [
9+
{
10+
"description": "Pointer difference should be taken from pointers that belong to a same array.",
11+
"kind": "problem",
12+
"name": "Subtraction between pointers shall only be applied to ones that address elements of the same array",
13+
"precision": "very-high",
14+
"severity": "error",
15+
"short_name": "PointerDifferenceTakenBetweenDifferentArrays",
16+
"tags": [
17+
"scope/system"
18+
]
19+
}
20+
],
21+
"title": "Pointer difference should be taken from pointers that belong to a same array."
22+
}
23+
}
24+
}

0 commit comments

Comments
 (0)