Skip to content

Navigation Menu

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 8c2da1c

Browse filesBrowse files
committed
Deviations: Expand testing for ranges
Ensure begin/end column code works as expected
1 parent 6a5f095 commit 8c2da1c
Copy full SHA for 8c2da1c

File tree

4 files changed

+63
-0
lines changed
Filter options

4 files changed

+63
-0
lines changed

‎cpp/common/test/deviations/deviations_basic_test/TypeLongDoubleUsed.expected

Copy file name to clipboardExpand all lines: cpp/common/test/deviations/deviations_basic_test/TypeLongDoubleUsed.expected
+2Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@
1010
| main.cpp:21:15:21:16 | d6 | Use of long double type. |
1111
| main.cpp:30:15:30:17 | d10 | Use of long double type. |
1212
| main.cpp:38:15:38:17 | d14 | Use of long double type. |
13+
| main.cpp:42:15:42:17 | d15 | Use of long double type. |
14+
| main.cpp:43:113:43:115 | d18 | Use of long double type. |

‎cpp/common/test/deviations/deviations_basic_test/main.cpp

Copy file name to clipboardExpand all lines: cpp/common/test/deviations/deviations_basic_test/main.cpp
+5Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,10 @@ int main(int argc, char **argv) {
3737
// codeql::autosar_deviation_end(a-0-4-2-deviation)
3838
long double d14; // NON_COMPLIANT (A0-4-2)
3939
getX(); // NON_COMPLIANT (A0-1-2)
40+
41+
// clang-format off
42+
long double d15; /* NON_COMPLIANT*/ /* codeql::autosar_deviation_begin(a-0-4-2-deviation) */ long double d16; // COMPLIANT[DEVIATED]
43+
long double d17; /* COMPLIANT[DEVIATED] */ /* codeql::autosar_deviation_end(a-0-4-2-deviation) */ long double d18; // NON_COMPLIANT
44+
// clang-format on
4045
return 0;
4146
}
+18Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
| main.cpp:11:15:11:16 | d1 | Use of long double type. |
2+
| main.cpp:12:15:12:16 | d2 | Use of long double type. |
3+
| main.cpp:14:15:14:16 | d3 | Use of long double type. |
4+
| main.cpp:16:15:16:16 | d4 | Use of long double type. |
5+
| main.cpp:18:15:18:16 | d5 | Use of long double type. |
6+
| main.cpp:19:15:19:16 | d6 | Use of long double type. |
7+
| main.cpp:22:15:22:16 | d7 | Use of long double type. |
8+
| main.cpp:24:15:24:16 | d8 | Use of long double type. |
9+
| main.cpp:26:15:26:16 | d9 | Use of long double type. |
10+
| main.cpp:28:15:28:17 | d10 | Use of long double type. |
11+
| main.cpp:30:15:30:17 | d11 | Use of long double type. |
12+
| main.cpp:32:15:32:17 | d12 | Use of long double type. |
13+
| main.cpp:34:15:34:17 | d13 | Use of long double type. |
14+
| main.cpp:36:15:36:17 | d14 | Use of long double type. |
15+
| main.cpp:40:15:40:17 | d15 | Use of long double type. |
16+
| main.cpp:40:108:40:110 | d16 | Use of long double type. |
17+
| main.cpp:41:15:41:17 | d17 | Use of long double type. |
18+
| main.cpp:41:113:41:115 | d18 | Use of long double type. |
+38Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/**
2+
* @id cpp/autosar/type-long-double-used
3+
* @name A0-4-2: Type long double shall not be used
4+
* @description The type long double has an implementation-defined width and therefore shall not be
5+
* used.
6+
* @kind problem
7+
* @precision very-high
8+
* @problem.severity warning
9+
* @tags external/autosar/id/a0-4-2
10+
* correctness
11+
* readability
12+
* external/autosar/allocated-target/implementation
13+
* external/autosar/enforcement/automated
14+
* external/autosar/obligation/required
15+
*/
16+
17+
import cpp
18+
import codingstandards.cpp.CodingStandards
19+
import codingstandards.cpp.exclusions.cpp.RuleMetadata
20+
21+
predicate isUsingLongDouble(ClassTemplateInstantiation c) {
22+
c.getATemplateArgument() instanceof LongDoubleType or
23+
isUsingLongDouble(c.getATemplateArgument())
24+
}
25+
26+
from Variable v
27+
where
28+
not isExcluded(v, BannedTypesPackage::typeLongDoubleUsedQuery()) and
29+
(
30+
v.getUnderlyingType() instanceof LongDoubleType and
31+
not v.isFromTemplateInstantiation(_)
32+
or
33+
exists(ClassTemplateInstantiation c |
34+
c = v.getType() and
35+
isUsingLongDouble(c)
36+
)
37+
)
38+
select v, "Use of long double type."

0 commit comments

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