Skip to content

Commit de08d26

Browse files
Merge branch 'michaelrfairhurst/package-undefined-behavior' into michaelrfairhurst/package-undefined-behavior-cast-enum-out-of-range
2 parents 85ae3f4 + ff9b709 commit de08d26

14 files changed

+91
-219
lines changed

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

Lines changed: 52 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -4,53 +4,16 @@ import RuleMetadata
44
import codingstandards.cpp.exclusions.RuleMetadata
55

66
newtype UndefinedQuery =
7-
TUndefinedBehaviorQuery() or
8-
TCriticalUnspecifiedBehaviorQuery() or
9-
TUndefinedBehaviorAuditQuery() or
10-
TCriticalUnspecifiedBehaviorAuditQuery() or
117
TPossibleDataRaceBetweenThreadsQuery() or
128
TDivisionByZeroUndefinedBehaviorQuery() or
139
TDeallocationTypeMismatchQuery() or
1410
TStringLiteralPossiblyModifiedAuditQuery() or
15-
TOutOfRangeEnumCastCriticalUnspecifiedBehaviorQuery()
11+
TOutOfRangeEnumCastCriticalUnspecifiedBehaviorQuery() or
12+
TNullPointerToMemberAccessUndefinedBehaviorQuery() or
13+
TUninitializedStaticPointerToMemberUndefinedBehaviorQuery() or
14+
TNonExistentMemberAccessUndefinedBehaviorQuery()
1615

1716
predicate isUndefinedQueryMetadata(Query query, string queryId, string ruleId, string category) {
18-
query =
19-
// `Query` instance for the `undefinedBehavior` query
20-
UndefinedPackage::undefinedBehaviorQuery() and
21-
queryId =
22-
// `@id` for the `undefinedBehavior` query
23-
"cpp/misra/undefined-behavior" and
24-
ruleId = "RULE-4-1-3" and
25-
category = "required"
26-
or
27-
query =
28-
// `Query` instance for the `criticalUnspecifiedBehavior` query
29-
UndefinedPackage::criticalUnspecifiedBehaviorQuery() and
30-
queryId =
31-
// `@id` for the `criticalUnspecifiedBehavior` query
32-
"cpp/misra/critical-unspecified-behavior" and
33-
ruleId = "RULE-4-1-3" and
34-
category = "required"
35-
or
36-
query =
37-
// `Query` instance for the `undefinedBehaviorAudit` query
38-
UndefinedPackage::undefinedBehaviorAuditQuery() and
39-
queryId =
40-
// `@id` for the `undefinedBehaviorAudit` query
41-
"cpp/misra/undefined-behavior-audit" and
42-
ruleId = "RULE-4-1-3" and
43-
category = "required"
44-
or
45-
query =
46-
// `Query` instance for the `criticalUnspecifiedBehaviorAudit` query
47-
UndefinedPackage::criticalUnspecifiedBehaviorAuditQuery() and
48-
queryId =
49-
// `@id` for the `criticalUnspecifiedBehaviorAudit` query
50-
"cpp/misra/critical-unspecified-behavior-audit" and
51-
ruleId = "RULE-4-1-3" and
52-
category = "required"
53-
or
5417
query =
5518
// `Query` instance for the `possibleDataRaceBetweenThreads` query
5619
UndefinedPackage::possibleDataRaceBetweenThreadsQuery() and
@@ -95,37 +58,36 @@ predicate isUndefinedQueryMetadata(Query query, string queryId, string ruleId, s
9558
"cpp/misra/out-of-range-enum-cast-critical-unspecified-behavior" and
9659
ruleId = "RULE-4-1-3" and
9760
category = "required"
61+
or
62+
query =
63+
// `Query` instance for the `nullPointerToMemberAccessUndefinedBehavior` query
64+
UndefinedPackage::nullPointerToMemberAccessUndefinedBehaviorQuery() and
65+
queryId =
66+
// `@id` for the `nullPointerToMemberAccessUndefinedBehavior` query
67+
"cpp/misra/null-pointer-to-member-access-undefined-behavior" and
68+
ruleId = "RULE-4-1-3" and
69+
category = "required"
70+
or
71+
query =
72+
// `Query` instance for the `uninitializedStaticPointerToMemberUndefinedBehavior` query
73+
UndefinedPackage::uninitializedStaticPointerToMemberUndefinedBehaviorQuery() and
74+
queryId =
75+
// `@id` for the `uninitializedStaticPointerToMemberUndefinedBehavior` query
76+
"cpp/misra/uninitialized-static-pointer-to-member-undefined-behavior" and
77+
ruleId = "RULE-4-1-3" and
78+
category = "required"
79+
or
80+
query =
81+
// `Query` instance for the `nonExistentMemberAccessUndefinedBehavior` query
82+
UndefinedPackage::nonExistentMemberAccessUndefinedBehaviorQuery() and
83+
queryId =
84+
// `@id` for the `nonExistentMemberAccessUndefinedBehavior` query
85+
"cpp/misra/non-existent-member-access-undefined-behavior" and
86+
ruleId = "RULE-4-1-3" and
87+
category = "required"
9888
}
9989

10090
module UndefinedPackage {
101-
Query undefinedBehaviorQuery() {
102-
//autogenerate `Query` type
103-
result =
104-
// `Query` type for `undefinedBehavior` query
105-
TQueryCPP(TUndefinedPackageQuery(TUndefinedBehaviorQuery()))
106-
}
107-
108-
Query criticalUnspecifiedBehaviorQuery() {
109-
//autogenerate `Query` type
110-
result =
111-
// `Query` type for `criticalUnspecifiedBehavior` query
112-
TQueryCPP(TUndefinedPackageQuery(TCriticalUnspecifiedBehaviorQuery()))
113-
}
114-
115-
Query undefinedBehaviorAuditQuery() {
116-
//autogenerate `Query` type
117-
result =
118-
// `Query` type for `undefinedBehaviorAudit` query
119-
TQueryCPP(TUndefinedPackageQuery(TUndefinedBehaviorAuditQuery()))
120-
}
121-
122-
Query criticalUnspecifiedBehaviorAuditQuery() {
123-
//autogenerate `Query` type
124-
result =
125-
// `Query` type for `criticalUnspecifiedBehaviorAudit` query
126-
TQueryCPP(TUndefinedPackageQuery(TCriticalUnspecifiedBehaviorAuditQuery()))
127-
}
128-
12991
Query possibleDataRaceBetweenThreadsQuery() {
13092
//autogenerate `Query` type
13193
result =
@@ -160,4 +122,25 @@ module UndefinedPackage {
160122
// `Query` type for `outOfRangeEnumCastCriticalUnspecifiedBehavior` query
161123
TQueryCPP(TUndefinedPackageQuery(TOutOfRangeEnumCastCriticalUnspecifiedBehaviorQuery()))
162124
}
125+
126+
Query nullPointerToMemberAccessUndefinedBehaviorQuery() {
127+
//autogenerate `Query` type
128+
result =
129+
// `Query` type for `nullPointerToMemberAccessUndefinedBehavior` query
130+
TQueryCPP(TUndefinedPackageQuery(TNullPointerToMemberAccessUndefinedBehaviorQuery()))
131+
}
132+
133+
Query uninitializedStaticPointerToMemberUndefinedBehaviorQuery() {
134+
//autogenerate `Query` type
135+
result =
136+
// `Query` type for `uninitializedStaticPointerToMemberUndefinedBehavior` query
137+
TQueryCPP(TUndefinedPackageQuery(TUninitializedStaticPointerToMemberUndefinedBehaviorQuery()))
138+
}
139+
140+
Query nonExistentMemberAccessUndefinedBehaviorQuery() {
141+
//autogenerate `Query` type
142+
result =
143+
// `Query` type for `nonExistentMemberAccessUndefinedBehavior` query
144+
TQueryCPP(TUndefinedPackageQuery(TNonExistentMemberAccessUndefinedBehaviorQuery()))
145+
}
163146
}

cpp/misra/src/rules/RULE-4-1-3/CriticalUnspecifiedBehavior.ql

Lines changed: 0 additions & 23 deletions
This file was deleted.

cpp/misra/src/rules/RULE-4-1-3/CriticalUnspecifiedBehaviorAudit.ql

Lines changed: 0 additions & 24 deletions
This file was deleted.

cpp/misra/src/rules/RULE-4-1-3/UndefinedBehavior.ql

Lines changed: 0 additions & 24 deletions
This file was deleted.

cpp/misra/src/rules/RULE-4-1-3/UndefinedBehaviorAudit.ql

Lines changed: 0 additions & 25 deletions
This file was deleted.

cpp/misra/test/rules/RULE-4-1-3/CriticalUnspecifiedBehavior.expected

Whitespace-only changes.

cpp/misra/test/rules/RULE-4-1-3/CriticalUnspecifiedBehavior.qlref

Lines changed: 0 additions & 1 deletion
This file was deleted.

cpp/misra/test/rules/RULE-4-1-3/CriticalUnspecifiedBehaviorAudit.expected

Whitespace-only changes.

cpp/misra/test/rules/RULE-4-1-3/CriticalUnspecifiedBehaviorAudit.qlref

Lines changed: 0 additions & 1 deletion
This file was deleted.

cpp/misra/test/rules/RULE-4-1-3/UndefinedBehavior.expected

Whitespace-only changes.

0 commit comments

Comments
 (0)