Skip to content

Commit 3f1997b

Browse files
committed
Deviations: Highlight invalid starts
1 parent 029537d commit 3f1997b

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

cpp/common/src/codingstandards/cpp/deviations/InvalidDeviationCodeIdentifier.ql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ predicate deviationCodeIdentifierError(Element e, string message) {
1616
message = "Deviation end block is unmatched."
1717
)
1818
or
19+
exists(DeviationBegin begin |
20+
e = begin and
21+
not isDeviationRangePaired(_, begin, _) and
22+
message = "Deviation start block is unmatched."
23+
)
24+
or
1925
exists(InvalidDeviationAttribute b |
2026
e = b and
2127
message =

cpp/common/test/deviations/invalid_deviations/InvalidDeviationCodeIdentifier.expected

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,7 @@
77
| invalidcodeidentifiers.cpp:14:1:14:74 | // codeql::misra_deviation_end(a-0-4-2-deviation) - invalid, unmatched end | Deviation end block is unmatched. |
88
| invalidcodeidentifiers.cpp:15:1:15:76 | // codeql::autosar_deviation_end(a-0-4-2-deviation) - invalid, unmatched end | Deviation end block is unmatched. |
99
| invalidcodeidentifiers.cpp:16:1:16:73 | // codeql::cert_deviation_end(a-0-4-2-deviation) - invalid, unmatched end | Deviation end block is unmatched. |
10-
| invalidcodeidentifiers.cpp:18:3:18:25 | misra_deviation | Deviation attribute references unknown code identifier x. |
10+
| invalidcodeidentifiers.cpp:17:1:17:78 | // codeql::misra_deviation_begin(a-0-4-2-deviation) - invalid, unmatched begin | Deviation start block is unmatched. |
11+
| invalidcodeidentifiers.cpp:18:1:18:80 | // codeql::autosar_deviation_begin(a-0-4-2-deviation) - invalid, unmatched begin | Deviation start block is unmatched. |
12+
| invalidcodeidentifiers.cpp:19:1:19:77 | // codeql::cert_deviation_begin(a-0-4-2-deviation) - invalid, unmatched begin | Deviation start block is unmatched. |
13+
| invalidcodeidentifiers.cpp:21:3:21:25 | misra_deviation | Deviation attribute references unknown code identifier x. |

cpp/common/test/deviations/invalid_deviations/invalidcodeidentifiers.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
// codeql::misra_deviation_end(a-0-4-2-deviation) - invalid, unmatched end
1515
// codeql::autosar_deviation_end(a-0-4-2-deviation) - invalid, unmatched end
1616
// codeql::cert_deviation_end(a-0-4-2-deviation) - invalid, unmatched end
17+
// codeql::misra_deviation_begin(a-0-4-2-deviation) - invalid, unmatched begin
18+
// codeql::autosar_deviation_begin(a-0-4-2-deviation) - invalid, unmatched begin
19+
// codeql::cert_deviation_begin(a-0-4-2-deviation) - invalid, unmatched begin
1720

1821
[[codeql::misra_deviation("x")]] // invalid
1922
void test() {}

0 commit comments

Comments
 (0)