Skip to content

Commit 17f18cc

Browse files
committed
Fix implementation RULE-6-8-4
1 parent b7f2378 commit 17f18cc

File tree

4 files changed

+12
-6
lines changed

4 files changed

+12
-6
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ import DeadCode8
3333
import DeadCode9
3434
import Declarations
3535
import Declarations1
36-
import Declarations5
3736
import Declarations2
37+
import Declarations5
3838
import ExceptionSafety
3939
import Exceptions1
4040
import Exceptions2
@@ -131,8 +131,8 @@ newtype TCPPQuery =
131131
TDeadCode9PackageQuery(DeadCode9Query q) or
132132
TDeclarationsPackageQuery(DeclarationsQuery q) or
133133
TDeclarations1PackageQuery(Declarations1Query q) or
134-
TDeclarations5PackageQuery(Declarations5Query q) or
135134
TDeclarations2PackageQuery(Declarations2Query q) or
135+
TDeclarations5PackageQuery(Declarations5Query q) or
136136
TExceptionSafetyPackageQuery(ExceptionSafetyQuery q) or
137137
TExceptions1PackageQuery(Exceptions1Query q) or
138138
TExceptions2PackageQuery(Exceptions2Query q) or
@@ -229,8 +229,8 @@ predicate isQueryMetadata(Query query, string queryId, string ruleId, string cat
229229
isDeadCode9QueryMetadata(query, queryId, ruleId, category) or
230230
isDeclarationsQueryMetadata(query, queryId, ruleId, category) or
231231
isDeclarations1QueryMetadata(query, queryId, ruleId, category) or
232-
isDeclarations5QueryMetadata(query, queryId, ruleId, category) or
233232
isDeclarations2QueryMetadata(query, queryId, ruleId, category) or
233+
isDeclarations5QueryMetadata(query, queryId, ruleId, category) or
234234
isExceptionSafetyQueryMetadata(query, queryId, ruleId, category) or
235235
isExceptions1QueryMetadata(query, queryId, ruleId, category) or
236236
isExceptions2QueryMetadata(query, queryId, ruleId, category) or

cpp/misra/src/rules/RULE-6-8-4/MemberFunctionsRefqualified.ql

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,14 @@ import codingstandards.cpp.misra
1818
import codingstandards.cpp.types.Compatible
1919
import codingstandards.cpp.Operator
2020

21-
abstract class MembersReturningObjectOrSubobject extends MemberFunction {
21+
class MembersReturningPointerOrRef extends MemberFunction {
22+
MembersReturningPointerOrRef() {
23+
this.getUnspecifiedType() instanceof PointerType or
24+
this.getUnspecifiedType() instanceof ReferenceType
25+
}
26+
}
27+
28+
abstract class MembersReturningObjectOrSubobject extends MembersReturningPointerOrRef {
2229
string toString() { result = "Members returning object or subobject" }
2330
}
2431

cpp/misra/test/rules/RULE-6-8-4/MemberFunctionsRefqualified.expected

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
| test.cpp:10:7:10:11 | Members returning object or subobject | Member function is not properly ref qualified. |
21
| test.cpp:12:14:12:20 | Members returning object or subobject | Member function is not properly ref qualified. |
32
| test.cpp:24:12:24:23 | Members returning object or subobject | Member function is not properly ref qualified. |
43
| test.cpp:28:6:28:18 | Members returning object or subobject | Member function is not properly ref qualified. |

cpp/misra/test/rules/RULE-6-8-4/test.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ struct A {
77
int const &geta2() const & { // COMPLIANT -- due to overload below
88
return a;
99
}
10-
int geta2() && { return a; } // NON_COMPLIANT
10+
int geta2() && { return a; }
1111

1212
int const &getabad() const & { // NON_COMPLIANT -- no overload provided
1313
return a;

0 commit comments

Comments
 (0)