Skip to content

Commit 6faa015

Browse files
Merge remote-tracking branch 'origin/michaelrfairhurst/resolves-to-type-lib' into michaelrfairhurst/preconditions5-only-std-move-lvalues
2 parents 92fe391 + a60f9b5 commit 6faa015

File tree

83 files changed

+1930
-82
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+1930
-82
lines changed

.github/workflows/standard_library_upgrade_tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
run: |
2929
echo "::set-output name=matrix::$(
3030
jq --compact-output \
31-
'.supported_environment | map([.+{os: "ubuntu-20.04-xl", codeql_standard_library_ident : .codeql_standard_library | sub("\/"; "_")}]) | flatten | {include: .}' \
31+
'.supported_environment | map([.+{os: "ubuntu-22.04-xl", codeql_standard_library_ident : .codeql_standard_library | sub("\/"; "_")}]) | flatten | {include: .}' \
3232
supported_codeql_configs.json
3333
)"
3434

.github/workflows/verify-standard-library-dependencies.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
run: |
3232
echo "::set-output name=matrix::$(
3333
jq --compact-output \
34-
'.supported_environment | map([.+{os: "ubuntu-20.04-xl", codeql_standard_library_ident : .codeql_standard_library | sub("\/"; "_")}]) | flatten | {include: .}' \
34+
'.supported_environment | map([.+{os: "ubuntu-22.04-xl", codeql_standard_library_ident : .codeql_standard_library | sub("\/"; "_")}]) | flatten | {include: .}' \
3535
supported_codeql_configs.json
3636
)"
3737
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- `M5-14-1` - `RightHandOperandOfALogicalAndOperatorsContainSideEffects.ql`:
2+
- Implementation has been refactored to share logic with Rule 8.14.1. No observable changes to results expected.

cpp/autosar/src/rules/M5-14-1/RightHandOperandOfALogicalAndOperatorsContainSideEffects.ql

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@
1616

1717
import cpp
1818
import codingstandards.cpp.autosar
19-
import codingstandards.cpp.SideEffect
20-
import codingstandards.cpp.sideeffect.DefaultEffects
21-
import codingstandards.cpp.Expr
19+
import codingstandards.cpp.rules.shortcircuitedpersistentsideeffectshared.ShortCircuitedPersistentSideEffectShared
2220

23-
from BinaryLogicalOperation op, Expr rhs
24-
where
25-
not isExcluded(op,
26-
SideEffects1Package::rightHandOperandOfALogicalAndOperatorsContainSideEffectsQuery()) and
27-
rhs = op.getRightOperand() and
28-
hasSideEffect(rhs) and
29-
not rhs instanceof UnevaluatedExprExtension
30-
select op, "The $@ may have a side effect that is not always evaluated.", rhs, "right-hand operand"
21+
module RightHandOperandOfALogicalAndOperatorsContainSideEffectsConfig implements
22+
ShortCircuitedPersistentSideEffectSharedConfigSig
23+
{
24+
Query getQuery() {
25+
result = SideEffects1Package::rightHandOperandOfALogicalAndOperatorsContainSideEffectsQuery()
26+
}
27+
}
28+
29+
import ShortCircuitedPersistentSideEffectShared<RightHandOperandOfALogicalAndOperatorsContainSideEffectsConfig>

cpp/autosar/test/rules/M5-14-1/RightHandOperandOfALogicalAndOperatorsContainSideEffects.expected

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

cpp/autosar/test/rules/M5-14-1/RightHandOperandOfALogicalAndOperatorsContainSideEffects.qlref

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cpp/common/test/rules/shortcircuitedpersistentsideeffectshared/ShortCircuitedPersistentSideEffectShared.ql

cpp/autosar/test/rules/M5-14-1/test.cpp

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

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,14 @@ import Scope
7373
import SideEffects1
7474
import SideEffects2
7575
import SideEffects4
76+
import SideEffects5
7677
import SmartPointers1
7778
import SmartPointers2
7879
import Statements
7980
import Strings
8081
import Templates
8182
import Toolchain
83+
import Toolchain3
8284
import Trigraph
8385
import TrustBoundaries
8486
import TypeRanges
@@ -158,12 +160,14 @@ newtype TCPPQuery =
158160
TSideEffects1PackageQuery(SideEffects1Query q) or
159161
TSideEffects2PackageQuery(SideEffects2Query q) or
160162
TSideEffects4PackageQuery(SideEffects4Query q) or
163+
TSideEffects5PackageQuery(SideEffects5Query q) or
161164
TSmartPointers1PackageQuery(SmartPointers1Query q) or
162165
TSmartPointers2PackageQuery(SmartPointers2Query q) or
163166
TStatementsPackageQuery(StatementsQuery q) or
164167
TStringsPackageQuery(StringsQuery q) or
165168
TTemplatesPackageQuery(TemplatesQuery q) or
166169
TToolchainPackageQuery(ToolchainQuery q) or
170+
TToolchain3PackageQuery(Toolchain3Query q) or
167171
TTrigraphPackageQuery(TrigraphQuery q) or
168172
TTrustBoundariesPackageQuery(TrustBoundariesQuery q) or
169173
TTypeRangesPackageQuery(TypeRangesQuery q) or
@@ -243,12 +247,14 @@ predicate isQueryMetadata(Query query, string queryId, string ruleId, string cat
243247
isSideEffects1QueryMetadata(query, queryId, ruleId, category) or
244248
isSideEffects2QueryMetadata(query, queryId, ruleId, category) or
245249
isSideEffects4QueryMetadata(query, queryId, ruleId, category) or
250+
isSideEffects5QueryMetadata(query, queryId, ruleId, category) or
246251
isSmartPointers1QueryMetadata(query, queryId, ruleId, category) or
247252
isSmartPointers2QueryMetadata(query, queryId, ruleId, category) or
248253
isStatementsQueryMetadata(query, queryId, ruleId, category) or
249254
isStringsQueryMetadata(query, queryId, ruleId, category) or
250255
isTemplatesQueryMetadata(query, queryId, ruleId, category) or
251256
isToolchainQueryMetadata(query, queryId, ruleId, category) or
257+
isToolchain3QueryMetadata(query, queryId, ruleId, category) or
252258
isTrigraphQueryMetadata(query, queryId, ruleId, category) or
253259
isTrustBoundariesQueryMetadata(query, queryId, ruleId, category) or
254260
isTypeRangesQueryMetadata(query, queryId, ruleId, category) or
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 SideEffects5Query = TShortCircuitedPersistentSideEffectQuery()
7+
8+
predicate isSideEffects5QueryMetadata(Query query, string queryId, string ruleId, string category) {
9+
query =
10+
// `Query` instance for the `shortCircuitedPersistentSideEffect` query
11+
SideEffects5Package::shortCircuitedPersistentSideEffectQuery() and
12+
queryId =
13+
// `@id` for the `shortCircuitedPersistentSideEffect` query
14+
"cpp/misra/short-circuited-persistent-side-effect" and
15+
ruleId = "RULE-8-14-1" and
16+
category = "advisory"
17+
}
18+
19+
module SideEffects5Package {
20+
Query shortCircuitedPersistentSideEffectQuery() {
21+
//autogenerate `Query` type
22+
result =
23+
// `Query` type for `shortCircuitedPersistentSideEffect` query
24+
TQueryCPP(TSideEffects5PackageQuery(TShortCircuitedPersistentSideEffectQuery()))
25+
}
26+
}

0 commit comments

Comments
 (0)