Skip to content

Commit 80ef303

Browse files
committed
Merge branch 'main' into redsun82/rust-qltest-proc-macro
2 parents b29ad5b + eff1fba commit 80ef303

File tree

84 files changed

+283
-130
lines changed

Some content is hidden

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

84 files changed

+283
-130
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: fix
3+
---
4+
* `resolveTypedefs` now properly resolves typedefs for `ArrayType`s.

cpp/ql/lib/semmle/code/cpp/Type.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1589,6 +1589,11 @@ class ArrayType extends DerivedType {
15891589
* Holds if this array is a variable-length array (VLA).
15901590
*/
15911591
predicate isVla() { type_is_vla(underlyingElement(this)) }
1592+
1593+
override Type resolveTypedefs() {
1594+
result.(ArrayType).getBaseType() = this.getBaseType().resolveTypedefs() and
1595+
result.(ArrayType).getArraySize() = this.getArraySize()
1596+
}
15921597
}
15931598

15941599
/**
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
typedef int int_t;
2+
int_t g1[10];
3+
int_t g2[2][4];
4+
5+
typedef float float_t;
6+
float_t arr1[5];
7+
float_t (*a_pointer)[10];
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
| file://:0:0:0:0 | float_t[5] | file://:0:0:0:0 | float[5] | ArrayTypedefs.cpp:6:9:6:12 | definition of arr1 |
2+
| file://:0:0:0:0 | float_t[10] | file://:0:0:0:0 | float[10] | ArrayTypedefs.cpp:7:11:7:19 | definition of a_pointer |
3+
| file://:0:0:0:0 | int_t[2][4] | file://:0:0:0:0 | int[2][4] | ArrayTypedefs.cpp:3:7:3:8 | definition of g2 |
4+
| file://:0:0:0:0 | int_t[4] | file://:0:0:0:0 | int[4] | ArrayTypedefs.cpp:3:7:3:8 | definition of g2 |
5+
| file://:0:0:0:0 | int_t[10] | file://:0:0:0:0 | int[10] | ArrayTypedefs.cpp:2:7:2:8 | definition of g1 |
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import cpp
2+
3+
from ArrayType type
4+
select type, type.resolveTypedefs(), type.getATypeNameUse()
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,72 @@
11
ql/csharp/ql/src/API Abuse/CallToGCCollect.ql
2+
ql/csharp/ql/src/API Abuse/CallToObsoleteMethod.ql
3+
ql/csharp/ql/src/API Abuse/ClassImplementsICloneable.ql
24
ql/csharp/ql/src/API Abuse/FormatInvalid.ql
35
ql/csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql
6+
ql/csharp/ql/src/API Abuse/NullArgumentToEquals.ql
7+
ql/csharp/ql/src/ASP/BlockCodeResponseWrite.ql
8+
ql/csharp/ql/src/Bad Practices/CallsUnmanagedCode.ql
9+
ql/csharp/ql/src/Bad Practices/CatchOfNullReferenceException.ql
410
ql/csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql
11+
ql/csharp/ql/src/Bad Practices/Declarations/LocalScopeVariableShadowsMember.ql
12+
ql/csharp/ql/src/Bad Practices/EmptyCatchBlock.ql
13+
ql/csharp/ql/src/Bad Practices/Implementation Hiding/ExposeRepresentation.ql
14+
ql/csharp/ql/src/Bad Practices/Naming Conventions/FieldMasksSuperField.ql
15+
ql/csharp/ql/src/Bad Practices/Naming Conventions/SameNameAsSuper.ql
16+
ql/csharp/ql/src/Bad Practices/PathCombine.ql
17+
ql/csharp/ql/src/Bad Practices/UnmanagedCodeCheck.ql
18+
ql/csharp/ql/src/CSI/CompareIdenticalValues.ql
519
ql/csharp/ql/src/CSI/NullAlways.ql
620
ql/csharp/ql/src/CSI/NullMaybe.ql
21+
ql/csharp/ql/src/Concurrency/FutileSyncOnField.ql
22+
ql/csharp/ql/src/Concurrency/LockOrder.ql
23+
ql/csharp/ql/src/Concurrency/LockThis.ql
24+
ql/csharp/ql/src/Concurrency/LockedWait.ql
725
ql/csharp/ql/src/Dead Code/DeadStoreOfLocal.ql
26+
ql/csharp/ql/src/Documentation/XmldocMissingSummary.ql
27+
ql/csharp/ql/src/Language Abuse/CastThisToTypeParameter.ql
28+
ql/csharp/ql/src/Language Abuse/CatchOfGenericException.ql
29+
ql/csharp/ql/src/Language Abuse/DubiousDowncastOfThis.ql
30+
ql/csharp/ql/src/Language Abuse/DubiousTypeTestOfThis.ql
831
ql/csharp/ql/src/Language Abuse/MissedReadonlyOpportunity.ql
32+
ql/csharp/ql/src/Language Abuse/MissedTernaryOpportunity.ql
33+
ql/csharp/ql/src/Language Abuse/MissedUsingOpportunity.ql
34+
ql/csharp/ql/src/Language Abuse/NestedIf.ql
35+
ql/csharp/ql/src/Language Abuse/RethrowException.ql
36+
ql/csharp/ql/src/Language Abuse/SimplifyBoolExpr.ql
37+
ql/csharp/ql/src/Language Abuse/UnusedPropertyValue.ql
938
ql/csharp/ql/src/Likely Bugs/Collections/ContainerLengthCmpOffByOne.ql
1039
ql/csharp/ql/src/Likely Bugs/Collections/ContainerSizeCmpZero.ql
40+
ql/csharp/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql
41+
ql/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql
42+
ql/csharp/ql/src/Likely Bugs/ConstantComparison.ql
1143
ql/csharp/ql/src/Likely Bugs/DangerousNonShortCircuitLogic.ql
1244
ql/csharp/ql/src/Likely Bugs/EqualityCheckOnFloats.ql
45+
ql/csharp/ql/src/Likely Bugs/EqualsArray.ql
1346
ql/csharp/ql/src/Likely Bugs/HashedButNoHash.ql
47+
ql/csharp/ql/src/Likely Bugs/ImpossibleArrayCast.ql
48+
ql/csharp/ql/src/Likely Bugs/IncomparableEquals.ql
49+
ql/csharp/ql/src/Likely Bugs/NestedLoopsSameVariable.ql
50+
ql/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql
51+
ql/csharp/ql/src/Likely Bugs/RecursiveEquals.ql
1452
ql/csharp/ql/src/Likely Bugs/ReferenceEqualsOnValueTypes.ql
1553
ql/csharp/ql/src/Likely Bugs/SelfAssignment.ql
54+
ql/csharp/ql/src/Likely Bugs/Statements/EmptyBlock.ql
55+
ql/csharp/ql/src/Likely Bugs/Statements/EmptyLockStatement.ql
56+
ql/csharp/ql/src/Likely Bugs/StaticFieldWrittenByInstance.ql
57+
ql/csharp/ql/src/Likely Bugs/StringBuilderCharInit.ql
1658
ql/csharp/ql/src/Likely Bugs/UncheckedCastInEquals.ql
59+
ql/csharp/ql/src/Linq/MissedAllOpportunity.ql
60+
ql/csharp/ql/src/Linq/MissedCastOpportunity.ql
61+
ql/csharp/ql/src/Linq/MissedOfTypeOpportunity.ql
62+
ql/csharp/ql/src/Linq/MissedSelectOpportunity.ql
63+
ql/csharp/ql/src/Linq/MissedWhereOpportunity.ql
64+
ql/csharp/ql/src/Linq/RedundantSelect.ql
65+
ql/csharp/ql/src/Performance/StringBuilderInLoop.ql
1766
ql/csharp/ql/src/Performance/StringConcatenationInLoop.ql
1867
ql/csharp/ql/src/Performance/UseTryGetValue.ql
1968
ql/csharp/ql/src/Useless code/DefaultToString.ql
69+
ql/csharp/ql/src/Useless code/FutileConditional.ql
2070
ql/csharp/ql/src/Useless code/IntGetHashCode.ql
71+
ql/csharp/ql/src/Useless code/RedundantToStringCall.ql
72+
ql/csharp/ql/src/Useless code/UnusedLabel.ql

csharp/ql/src/API Abuse/CallToGCCollect.ql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
* @problem.severity warning
66
* @precision very-high
77
* @id cs/call-to-gc
8-
* @tags efficiency
9-
* maintainability
10-
* quality
8+
* @tags quality
9+
* reliability
10+
* performance
1111
*/
1212

1313
import csharp

csharp/ql/src/API Abuse/CallToObsoleteMethod.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
* @problem.severity warning
77
* @precision very-high
88
* @id cs/call-to-obsolete-method
9-
* @tags changeability
9+
* @tags quality
1010
* maintainability
11+
* changeability
1112
* external/cwe/cwe-477
1213
*/
1314

csharp/ql/src/API Abuse/ClassImplementsICloneable.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* @problem.severity recommendation
77
* @precision very-high
88
* @id cs/class-implements-icloneable
9-
* @tags reliability
9+
* @tags quality
1010
* maintainability
1111
*/
1212

csharp/ql/src/API Abuse/FormatInvalid.ql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
* @problem.severity error
77
* @precision high
88
* @id cs/invalid-string-formatting
9-
* @tags reliability
10-
* maintainability
11-
* quality
9+
* @tags quality
10+
* reliability
11+
* correctness
1212
*/
1313

1414
import csharp

csharp/ql/src/API Abuse/NoDisposeCallOnLocalIDisposable.ql

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
* @problem.severity warning
77
* @precision high
88
* @id cs/local-not-disposed
9-
* @tags efficiency
10-
* maintainability
11-
* quality
9+
* @tags quality
10+
* reliability
11+
* correctness
12+
* efficiency
1213
* external/cwe/cwe-404
1314
* external/cwe/cwe-459
1415
* external/cwe/cwe-460

csharp/ql/src/API Abuse/NullArgumentToEquals.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
* @problem.severity warning
77
* @precision high
88
* @id cs/null-argument-to-equals
9-
* @tags reliability
9+
* @tags quality
10+
* reliability
1011
* correctness
1112
*/
1213

csharp/ql/src/ASP/BlockCodeResponseWrite.ql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
* @problem.severity recommendation
66
* @precision high
77
* @id cs/asp/response-write
8-
* @tags maintainability
8+
* @tags quality
9+
* maintainability
10+
* readability
911
* frameworks/asp.net
1012
*/
1113

csharp/ql/src/Architecture/Refactoring Opportunities/InappropriateIntimacy.ql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* @precision high
88
* @id cs/coupled-types
99
* @tags maintainability
10+
* complexity
1011
* modularity
1112
*/
1213

csharp/ql/src/Bad Practices/CallsUnmanagedCode.ql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
* @problem.severity recommendation
66
* @precision high
77
* @id cs/call-to-unmanaged-code
8-
* @tags reliability
9-
* maintainability
8+
* @tags quality
9+
* reliability
10+
* correctness
1011
*/
1112

1213
import csharp

csharp/ql/src/Bad Practices/CatchOfNullReferenceException.ql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
* @problem.severity warning
66
* @precision very-high
77
* @id cs/catch-nullreferenceexception
8-
* @tags reliability
8+
* @tags quality
9+
* reliability
910
* correctness
11+
* error-handling
1012
* external/cwe/cwe-395
1113
*/
1214

csharp/ql/src/Bad Practices/Control-Flow/ConstantCondition.ql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
* @problem.severity warning
88
* @precision very-high
99
* @id cs/constant-condition
10-
* @tags maintainability
10+
* @tags quality
11+
* maintainability
1112
* readability
12-
* quality
1313
* external/cwe/cwe-835
1414
*/
1515

csharp/ql/src/Bad Practices/Declarations/LocalScopeVariableShadowsMember.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
* @problem.severity recommendation
77
* @precision high
88
* @id cs/local-shadows-member
9-
* @tags maintainability
9+
* @tags quality
10+
* maintainability
1011
* readability
1112
*/
1213

csharp/ql/src/Bad Practices/Declarations/TooManyRefParameters.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
* @problem.severity recommendation
77
* @precision very-high
88
* @id cs/too-many-ref-parameters
9-
* @tags testability
9+
* @tags maintainability
1010
* readability
11+
* testability
1112
*/
1213

1314
import csharp

csharp/ql/src/Bad Practices/EmptyCatchBlock.ql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
* @problem.severity recommendation
66
* @precision very-high
77
* @id cs/empty-catch-block
8-
* @tags reliability
9-
* readability
8+
* @tags quality
9+
* reliability
10+
* error-handling
1011
* exceptions
1112
* external/cwe/cwe-390
1213
* external/cwe/cwe-391

csharp/ql/src/Bad Practices/Implementation Hiding/ExposeRepresentation.ql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
* @problem.severity recommendation
77
* @precision high
88
* @id cs/expose-implementation
9-
* @tags reliability
9+
* @tags quality
10+
* reliability
11+
* correctness
1012
* external/cwe/cwe-485
1113
*/
1214

csharp/ql/src/Bad Practices/Naming Conventions/FieldMasksSuperField.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
* @problem.severity warning
88
* @precision high
99
* @id cs/field-masks-base-field
10-
* @tags reliability
10+
* @tags quality
11+
* maintainability
1112
* readability
1213
* naming
1314
*/

csharp/ql/src/Bad Practices/Naming Conventions/SameNameAsSuper.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
* @problem.severity recommendation
66
* @precision high
77
* @id cs/class-name-matches-base-class
8-
* @tags maintainability
8+
* @tags quality
9+
* maintainability
910
* readability
1011
* naming
1112
*/

csharp/ql/src/Bad Practices/PathCombine.ql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
* @problem.severity recommendation
66
* @precision very-high
77
* @id cs/path-combine
8-
* @tags reliability
8+
* @tags quality
9+
* reliability
10+
* correctness
911
*/
1012

1113
import csharp

csharp/ql/src/Bad Practices/UnmanagedCodeCheck.ql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
* @problem.severity recommendation
66
* @precision high
77
* @id cs/unmanaged-code
8-
* @tags reliability
9-
* maintainability
8+
* @tags quality
9+
* reliability
10+
* correctness
1011
*/
1112

1213
import csharp

csharp/ql/src/CSI/CompareIdenticalValues.ql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
* @problem.severity warning
88
* @precision high
99
* @id cs/comparison-of-identical-expressions
10-
* @tags reliability
10+
* @tags quality
11+
* reliability
12+
* correctness
1113
*/
1214

1315
import csharp

csharp/ql/src/CSI/NullAlways.ql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
* @problem.severity error
66
* @precision very-high
77
* @id cs/dereferenced-value-is-always-null
8-
* @tags reliability
8+
* @tags quality
9+
* reliability
910
* correctness
1011
* exceptions
1112
* external/cwe/cwe-476
12-
* quality
1313
*/
1414

1515
import csharp

csharp/ql/src/CSI/NullMaybe.ql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
* @problem.severity warning
77
* @precision high
88
* @id cs/dereferenced-value-may-be-null
9-
* @tags reliability
9+
* @tags quality
10+
* reliability
1011
* correctness
1112
* exceptions
1213
* external/cwe/cwe-476
13-
* quality
1414
*/
1515

1616
import csharp

csharp/ql/src/Complexity/BlockWithTooManyStatements.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
* @precision high
99
* @id cs/complex-block
1010
* @tags maintainability
11-
* testability
1211
* complexity
12+
* testability
1313
*/
1414

1515
import csharp

csharp/ql/src/Complexity/ComplexCondition.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
* @problem.severity recommendation
66
* @precision high
77
* @id cs/complex-condition
8-
* @tags testability
8+
* @tags maintainability
99
* readability
10+
* testability
1011
*/
1112

1213
import csharp

csharp/ql/src/Concurrency/FutileSyncOnField.ql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
* @problem.severity error
77
* @precision high
88
* @id cs/unsafe-sync-on-field
9-
* @tags reliability
10-
* correctness
9+
* @tags quality
10+
* reliability
1111
* concurrency
12+
* correctness
1213
* external/cwe/cwe-662
1314
* external/cwe/cwe-366
1415
*/

0 commit comments

Comments
 (0)