Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 4cc31a6

Browse filesBrowse files
authored
Merge pull request #445 from github/lcartey/a7-1-1-params
A7-1-1: Do not report for function parameters
2 parents 5a54165 + aee4bed commit 4cc31a6
Copy full SHA for 4cc31a6

File tree

Expand file treeCollapse file tree

7 files changed

+6
-76
lines changed
Filter options
Expand file treeCollapse file tree

7 files changed

+6
-76
lines changed
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* `A7-1-1` - no longer report parameters as contravening this rule. This is inline with the rule intent as described in the referenced C++ Core Guidelines rule [CON.1](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#con1-by-default-make-objects-immutable), which states "To avoid confusion and lots of false positives, don’t enforce this rule for function parameters."

‎cpp/autosar/src/rules/A7-1-1/DeclarationUnmodifiedParamMissingConstSpecifier.ql

Copy file name to clipboardExpand all lines: cpp/autosar/src/rules/A7-1-1/DeclarationUnmodifiedParamMissingConstSpecifier.ql
-42Lines changed: 0 additions & 42 deletions
This file was deleted.

‎cpp/autosar/test/rules/A7-1-1/DeclarationUnmodifiedParamMissingConstSpecifier.expected

Copy file name to clipboardExpand all lines: cpp/autosar/test/rules/A7-1-1/DeclarationUnmodifiedParamMissingConstSpecifier.expected
-1Lines changed: 0 additions & 1 deletion
This file was deleted.

‎cpp/autosar/test/rules/A7-1-1/DeclarationUnmodifiedParamMissingConstSpecifier.qlref

Copy file name to clipboardExpand all lines: cpp/autosar/test/rules/A7-1-1/DeclarationUnmodifiedParamMissingConstSpecifier.qlref
-1Lines changed: 0 additions & 1 deletion
This file was deleted.

‎cpp/autosar/test/rules/A7-1-1/test.cpp

Copy file name to clipboardExpand all lines: cpp/autosar/test/rules/A7-1-1/test.cpp
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
void f1(int *p) { // COMPLIANT
55
*p += 2;
66
}
7-
void f2(int *p) { // NON_COMPLIANT
7+
void f2(int *p) { // COMPLIANT - we ignore parameters for this rule
88
int l4 = 1; // NON_COMPLIANT
99
int *p1 = p; // NON_COMPLIANT
1010
}

‎cpp/common/src/codingstandards/cpp/exclusions/cpp/Const.qll

Copy file name to clipboardExpand all lines: cpp/common/src/codingstandards/cpp/exclusions/cpp/Const.qll
-17Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import codingstandards.cpp.exclusions.RuleMetadata
55

66
newtype ConstQuery =
77
TRemoveConstOrVolatileQualificationAutosarQuery() or
8-
TDeclarationUnmodifiedParamMissingConstSpecifierQuery() or
98
TDeclarationUnmodifiedObjectMissingConstSpecifierQuery() or
109
TVariableMissingConstexprQuery() or
1110
TFunctionMissingConstexprQuery() or
@@ -28,15 +27,6 @@ predicate isConstQueryMetadata(Query query, string queryId, string ruleId, strin
2827
ruleId = "A5-2-3" and
2928
category = "required"
3029
or
31-
query =
32-
// `Query` instance for the `declarationUnmodifiedParamMissingConstSpecifier` query
33-
ConstPackage::declarationUnmodifiedParamMissingConstSpecifierQuery() and
34-
queryId =
35-
// `@id` for the `declarationUnmodifiedParamMissingConstSpecifier` query
36-
"cpp/autosar/declaration-unmodified-param-missing-const-specifier" and
37-
ruleId = "A7-1-1" and
38-
category = "required"
39-
or
4030
query =
4131
// `Query` instance for the `declarationUnmodifiedObjectMissingConstSpecifier` query
4232
ConstPackage::declarationUnmodifiedObjectMissingConstSpecifierQuery() and
@@ -145,13 +135,6 @@ module ConstPackage {
145135
TQueryCPP(TConstPackageQuery(TRemoveConstOrVolatileQualificationAutosarQuery()))
146136
}
147137

148-
Query declarationUnmodifiedParamMissingConstSpecifierQuery() {
149-
//autogenerate `Query` type
150-
result =
151-
// `Query` type for `declarationUnmodifiedParamMissingConstSpecifier` query
152-
TQueryCPP(TConstPackageQuery(TDeclarationUnmodifiedParamMissingConstSpecifierQuery()))
153-
}
154-
155138
Query declarationUnmodifiedObjectMissingConstSpecifierQuery() {
156139
//autogenerate `Query` type
157140
result =

‎rule_packages/cpp/Const.json

Copy file name to clipboardExpand all lines: rule_packages/cpp/Const.json
+4-14Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,6 @@
3333
"obligation": "required"
3434
},
3535
"queries": [
36-
{
37-
"description": "`Constexpr`/`const` specifiers prevent unintentional data modification for parameters intended as immutable.",
38-
"kind": "problem",
39-
"name": "Constexpr or const specifiers shall be used for immutable parameter usage",
40-
"precision": "high",
41-
"severity": "warning",
42-
"short_name": "DeclarationUnmodifiedParamMissingConstSpecifier",
43-
"tags": [
44-
"correctness",
45-
"maintainability",
46-
"readability"
47-
]
48-
},
4936
{
5037
"description": "`Constexpr`/`const` specifiers prevent unintentional data modification for data intended as immutable.",
5138
"kind": "problem",
@@ -57,7 +44,10 @@
5744
"correctness",
5845
"maintainability",
5946
"readability"
60-
]
47+
],
48+
"implementation_scope": {
49+
"description": "We exclude function parameters from this rule in line with the rule intention as described in the C++ Core Guidelines Con.1 which excludes function parameters."
50+
}
6151
}
6252
],
6353
"title": "Constexpr or const specifiers shall be used for immutable data declaration."

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.