Skip to content

Commit 46d7355

Browse files
Commit compilable stub queries
1 parent b2a6480 commit 46d7355

File tree

6 files changed

+97
-12
lines changed

6 files changed

+97
-12
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ import Toolchain3
8585
import Trigraph
8686
import TrustBoundaries
8787
import TypeRanges
88+
import Undefined
8889
import Uninitialized
8990
import VirtualFunctions
9091

@@ -173,6 +174,7 @@ newtype TCPPQuery =
173174
TTrigraphPackageQuery(TrigraphQuery q) or
174175
TTrustBoundariesPackageQuery(TrustBoundariesQuery q) or
175176
TTypeRangesPackageQuery(TypeRangesQuery q) or
177+
TUndefinedPackageQuery(UndefinedQuery q) or
176178
TUninitializedPackageQuery(UninitializedQuery q) or
177179
TVirtualFunctionsPackageQuery(VirtualFunctionsQuery q)
178180

@@ -261,6 +263,7 @@ predicate isQueryMetadata(Query query, string queryId, string ruleId, string cat
261263
isTrigraphQueryMetadata(query, queryId, ruleId, category) or
262264
isTrustBoundariesQueryMetadata(query, queryId, ruleId, category) or
263265
isTypeRangesQueryMetadata(query, queryId, ruleId, category) or
266+
isUndefinedQueryMetadata(query, queryId, ruleId, category) or
264267
isUninitializedQueryMetadata(query, queryId, ruleId, category) or
265268
isVirtualFunctionsQueryMetadata(query, queryId, ruleId, category)
266269
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
//** THIS FILE IS AUTOGENERATED, DO NOT MODIFY DIRECTLY. **/
2+
import cpp
3+
import RuleMetadata
4+
import codingstandards.cpp.exclusions.RuleMetadata
5+
6+
newtype UndefinedQuery =
7+
TUndefinedBehaviorQuery() or
8+
TCriticalUnspecifiedBehaviorQuery() or
9+
TUndefinedBehaviorAuditQuery() or
10+
TCriticalUnspecifiedBehaviorAuditQuery()
11+
12+
predicate isUndefinedQueryMetadata(Query query, string queryId, string ruleId, string category) {
13+
query =
14+
// `Query` instance for the `undefinedBehavior` query
15+
UndefinedPackage::undefinedBehaviorQuery() and
16+
queryId =
17+
// `@id` for the `undefinedBehavior` query
18+
"cpp/misra/undefined-behavior" and
19+
ruleId = "RULE-4-1-3" and
20+
category = "required"
21+
or
22+
query =
23+
// `Query` instance for the `criticalUnspecifiedBehavior` query
24+
UndefinedPackage::criticalUnspecifiedBehaviorQuery() and
25+
queryId =
26+
// `@id` for the `criticalUnspecifiedBehavior` query
27+
"cpp/misra/critical-unspecified-behavior" and
28+
ruleId = "RULE-4-1-3" and
29+
category = "required"
30+
or
31+
query =
32+
// `Query` instance for the `undefinedBehaviorAudit` query
33+
UndefinedPackage::undefinedBehaviorAuditQuery() and
34+
queryId =
35+
// `@id` for the `undefinedBehaviorAudit` query
36+
"cpp/misra/undefined-behavior-audit" and
37+
ruleId = "RULE-4-1-3" and
38+
category = "required"
39+
or
40+
query =
41+
// `Query` instance for the `criticalUnspecifiedBehaviorAudit` query
42+
UndefinedPackage::criticalUnspecifiedBehaviorAuditQuery() and
43+
queryId =
44+
// `@id` for the `criticalUnspecifiedBehaviorAudit` query
45+
"cpp/misra/critical-unspecified-behavior-audit" and
46+
ruleId = "RULE-4-1-3" and
47+
category = "required"
48+
}
49+
50+
module UndefinedPackage {
51+
Query undefinedBehaviorQuery() {
52+
//autogenerate `Query` type
53+
result =
54+
// `Query` type for `undefinedBehavior` query
55+
TQueryCPP(TUndefinedPackageQuery(TUndefinedBehaviorQuery()))
56+
}
57+
58+
Query criticalUnspecifiedBehaviorQuery() {
59+
//autogenerate `Query` type
60+
result =
61+
// `Query` type for `criticalUnspecifiedBehavior` query
62+
TQueryCPP(TUndefinedPackageQuery(TCriticalUnspecifiedBehaviorQuery()))
63+
}
64+
65+
Query undefinedBehaviorAuditQuery() {
66+
//autogenerate `Query` type
67+
result =
68+
// `Query` type for `undefinedBehaviorAudit` query
69+
TQueryCPP(TUndefinedPackageQuery(TUndefinedBehaviorAuditQuery()))
70+
}
71+
72+
Query criticalUnspecifiedBehaviorAuditQuery() {
73+
//autogenerate `Query` type
74+
result =
75+
// `Query` type for `criticalUnspecifiedBehaviorAudit` query
76+
TQueryCPP(TUndefinedPackageQuery(TCriticalUnspecifiedBehaviorAuditQuery()))
77+
}
78+
}

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
import cpp
1717
import codingstandards.cpp.misra
1818

19-
from
19+
from Element e
2020
where
21-
not isExcluded(x, UndefinedPackage::criticalUnspecifiedBehaviorQuery()) and
22-
select
21+
not isExcluded(e, UndefinedPackage::criticalUnspecifiedBehaviorQuery()) and
22+
none()
23+
select e, "no implementation"

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
import cpp
1818
import codingstandards.cpp.misra
1919

20-
from
20+
from Element e
2121
where
22-
not isExcluded(x, UndefinedPackage::criticalUnspecifiedBehaviorAuditQuery()) and
23-
select
22+
not isExcluded(e, UndefinedPackage::criticalUnspecifiedBehaviorAuditQuery()) and
23+
none()
24+
select e, "no implementation"

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@
1717
import cpp
1818
import codingstandards.cpp.misra
1919

20-
from
20+
from Element e
2121
where
22-
not isExcluded(x, UndefinedPackage::undefinedBehaviorQuery()) and
23-
select
22+
not isExcluded(e, UndefinedPackage::undefinedBehaviorQuery()) and
23+
none()
24+
select e, "no implementation"

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
import cpp
1919
import codingstandards.cpp.misra
2020

21-
from
21+
from Element e
2222
where
23-
not isExcluded(x, UndefinedPackage::undefinedBehaviorAuditQuery()) and
24-
select
23+
not isExcluded(e, UndefinedPackage::undefinedBehaviorAuditQuery()) and
24+
none()
25+
select e, "no implementation"

0 commit comments

Comments
 (0)