Skip to content

Commit 3ccd69e

Browse files
First draft of RULE-0-2-2
1 parent e140430 commit 3ccd69e

File tree

19 files changed

+196
-22
lines changed

19 files changed

+196
-22
lines changed
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
// GENERATED FILE - DO NOT MODIFY
22
import codingstandards.cpp.rules.unusedparameter.UnusedParameter
33

4-
class TestFileQuery extends UnusedParameterSharedQuery, TestQuery { }
4+
module UnusedParameterTestConfig implements UnusedParameterSharedConfigSig {
5+
Query getQuery() { result instanceof TestQuery }
6+
}
7+
8+
import UnusedParameterShared<UnusedParameterTestConfig>

c/misra/src/rules/RULE-2-7/UnusedParameter.ql

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ import cpp
1616
import codingstandards.c.misra
1717
import codingstandards.cpp.rules.unusedparameter.UnusedParameter
1818

19-
class UnusedParameterQuery extends UnusedParameterSharedQuery {
20-
UnusedParameterQuery() { this = DeadCodePackage::unusedParameterQuery() }
19+
module UnusedParameterQueryConfig implements UnusedParameterSharedConfigSig {
20+
Query getQuery() { result = DeadCodePackage::unusedParameterQuery() }
2121
}
22+
23+
import UnusedParameterShared<UnusedParameterQueryConfig>
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- `A0-1-4`, `RULE-2-7` - `UnusedParameter.ql`:
2+
- Refactored to be able to share most logic between MISRA C, MISRA C++, and AUTOSAR. No visible change in behavior expected.

cpp/autosar/src/rules/A0-1-4/UnusedParameter.ql

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,13 @@ import codingstandards.cpp.autosar
1818
import codingstandards.cpp.deadcode.UnusedParameters
1919
import codingstandards.cpp.rules.unusedparameter.UnusedParameter
2020

21-
class UnusedParameterQuery extends UnusedParameterSharedQuery {
22-
UnusedParameterQuery() { this = DeadCodePackage::unusedParameterQuery() }
21+
module UnusedParameterQueryConfig implements UnusedParameterSharedConfigSig {
22+
Query getQuery() { result = DeadCodePackage::unusedParameterQuery() }
23+
24+
predicate excludeParameter(Parameter p) {
25+
// Virtual functions are covered by a different rule
26+
p.getFunction().isVirtual()
27+
}
2328
}
29+
30+
import UnusedParameterShared<UnusedParameterQueryConfig>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
| test.cpp:2:14:2:14 | x | Unused parameter 'x' for function $@. | test.cpp:2:8:2:8 | b | A::b |
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rules/A0-1-4/UnusedParameter.ql

cpp/autosar/test/rules/A0-1-4/UnusedParameter.testref

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class A {
2+
void b(int x) {} // NON_COMPLIANT
3+
4+
// This is specially excluded from A0-1-4, covered by a different rule,
5+
// even though it's non compliant in the shared query.
6+
virtual void d(int x, int y) {} // COMPLIANT
7+
};
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 DeadCode8Query = TUnusedParameterMisraCppQuery()
7+
8+
predicate isDeadCode8QueryMetadata(Query query, string queryId, string ruleId, string category) {
9+
query =
10+
// `Query` instance for the `unusedParameterMisraCpp` query
11+
DeadCode8Package::unusedParameterMisraCppQuery() and
12+
queryId =
13+
// `@id` for the `unusedParameterMisraCpp` query
14+
"cpp/misra/unused-parameter-misra-cpp" and
15+
ruleId = "RULE-0-2-2" and
16+
category = "required"
17+
}
18+
19+
module DeadCode8Package {
20+
Query unusedParameterMisraCppQuery() {
21+
//autogenerate `Query` type
22+
result =
23+
// `Query` type for `unusedParameterMisraCpp` query
24+
TQueryCPP(TDeadCode8PackageQuery(TUnusedParameterMisraCppQuery()))
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
@@ -19,6 +19,7 @@ import Conversions2
1919
import DeadCode
2020
import DeadCode3
2121
import DeadCode4
22+
import DeadCode8
2223
import Declarations
2324
import ExceptionSafety
2425
import Exceptions1
@@ -91,6 +92,7 @@ newtype TCPPQuery =
9192
TDeadCodePackageQuery(DeadCodeQuery q) or
9293
TDeadCode3PackageQuery(DeadCode3Query q) or
9394
TDeadCode4PackageQuery(DeadCode4Query q) or
95+
TDeadCode8PackageQuery(DeadCode8Query q) or
9496
TDeclarationsPackageQuery(DeclarationsQuery q) or
9597
TExceptionSafetyPackageQuery(ExceptionSafetyQuery q) or
9698
TExceptions1PackageQuery(Exceptions1Query q) or
@@ -163,6 +165,7 @@ predicate isQueryMetadata(Query query, string queryId, string ruleId, string cat
163165
isDeadCodeQueryMetadata(query, queryId, ruleId, category) or
164166
isDeadCode3QueryMetadata(query, queryId, ruleId, category) or
165167
isDeadCode4QueryMetadata(query, queryId, ruleId, category) or
168+
isDeadCode8QueryMetadata(query, queryId, ruleId, category) or
166169
isDeclarationsQueryMetadata(query, queryId, ruleId, category) or
167170
isExceptionSafetyQueryMetadata(query, queryId, ruleId, category) or
168171
isExceptions1QueryMetadata(query, queryId, ruleId, category) or

0 commit comments

Comments
 (0)