Skip to content

Commit 3e12472

Browse files
committed
C++: Move C/C++ suites to ql repo
As the queries live here, it makes sense for the suites to be versioned together with them. The LGTM suite has already been moved. This commit moves the actively-maintained non-LGTM suites.
1 parent bbee9a8 commit 3e12472

Some content is hidden

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

52 files changed

+633
-0
lines changed

cpp/config/suites/c/code-review

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
+ semmlecode-cpp-queries/Likely Bugs/Conversion/LossyPointerCast.ql: /Critical/Critical_Correctness/Dangerous Conversions
2+
+ semmlecode-cpp-queries/Best Practices/Likely Errors/Slicing.ql: /Critical/Critical_Correctness/Dangerous Conversions
3+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/BadCheckOdd.ql: /Critical/Critical_Correctness/Dangerous Conversions
4+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/IntMultToLong.ql: /Critical/Critical_Correctness/Dangerous Conversions
5+
+ semmlecode-cpp-queries/Likely Bugs/Conversion/NonzeroValueCastToPointer.ql: /Critical/Critical_Correctness/Dangerous Conversions
6+
+ semmlecode-cpp-queries/Likely Bugs/Conversion/ImplicitDowncastFromBitfield.ql: /Critical/Critical_Correctness/Dangerous Conversions
7+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/AssignWhereCompareMeant.ql: /Critical/Critical_Correctness/Common Errors
8+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/CompareWhereAssignMeant.ql: /Critical/Critical_Correctness/Common Errors
9+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/ExprHasNoEffect.ql: /Critical/Critical_Correctness/Common Errors
10+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/ShortCircuitBitMask.ql: /Critical/Critical_Correctness/Common Errors
11+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/MissingEnumCaseInSwitch.ql: /Critical/Critical_Correctness/Common Errors
12+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/BitwiseSignCheck.ql: /Critical/Critical_Correctness/Common Errors
13+
+ semmlecode-cpp-queries/Likely Bugs/Memory Management/SuspiciousCallToMemset.ql: /Critical/Critical_Correctness/Use of Libraries
14+
+ semmlecode-cpp-queries/Likely Bugs/Memory Management/SuspiciousSizeof.ql: /Critical/Critical_Correctness/Use of Libraries
15+
+ semmlecode-cpp-queries/Likely Bugs/Memory Management/UnsafeUseOfStrcat.ql: /Critical/Critical_Correctness/Use of Libraries
16+
+ semmlecode-cpp-queries/Likely Bugs/Memory Management/SuspiciousCallToStrncat.ql: /Critical/Critical_Correctness/Use of Libraries
17+
+ semmlecode-cpp-queries/Likely Bugs/Memory Management/StrncpyFlippedArgs.ql: /Critical/Critical_Correctness/Use of Libraries
18+
+ semmlecode-cpp-queries/Likely Bugs/Format/WrongNumberOfFormatArguments.ql: /Critical/Critical_Correctness/Use of Libraries
19+
+ semmlecode-cpp-queries/Likely Bugs/Format/TooManyFormatArguments.ql: /Critical/Critical_Correctness/Use of Libraries
20+
+ semmlecode-cpp-queries/jsf/4.21 Operators/AV Rule 166.ql: /Critical/Critical_Correctness/Use of Libraries # Sizeof with side effects
21+
+ semmlecode-cpp-queries/jsf/4.07 Header Files/AV Rule 35.ql: /Critical/Critical_Maintainability/Coupling # Missing header guard
22+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/ComparisonPrecedence.ql: /Critical/Critical_Readability/Expressions
23+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/UnsignedGEZero.ql: /Critical/Critical_Readability/Expressions
24+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/PointlessComparison.ql: /Critical/Critical_Readability/Expressions
25+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/BadAdditionOverflowCheck.ql: /Critical/Critical_Readability/Expressions
26+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/PointlessSelfComparison.ql: /Critical/Critical_Readability/Expressions
27+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/DubiousNullCheck.ql: /Critical/Critical_Readability/Control Flow
28+
+ semmlecode-cpp-queries/jsf/4.24 Control Flow Structures/AV Rule 197.ql: /Critical/Critical_Readability/Control Flow
29+
30+
## FLinesOfCode.ql is used internally.
31+
+ odasa-cpp-metrics/Files/FLinesOfCode.ql

cpp/config/suites/c/correctness

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# CORRECTNESS
2+
# Dangerous Conversions
3+
+ semmlecode-cpp-queries/Likely Bugs/Conversion/LossyPointerCast.ql: /Correctness/Dangerous Conversions
4+
+ semmlecode-cpp-queries/Best Practices/Likely Errors/Slicing.ql: /Correctness/Dangerous Conversions
5+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/BadCheckOdd.ql: /Correctness/Dangerous Conversions
6+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/IntMultToLong.ql: /Correctness/Dangerous Conversions
7+
+ semmlecode-cpp-queries/Likely Bugs/Conversion/NonzeroValueCastToPointer.ql: /Correctness/Dangerous Conversions
8+
+ semmlecode-cpp-queries/Likely Bugs/Conversion/ImplicitDowncastFromBitfield.ql: /Correctness/Dangerous Conversions
9+
# Consistent Use
10+
+ semmlecode-cpp-queries/Critical/ReturnValueIgnored.ql: /Correctness/Consistent Use
11+
+ semmlecode-cpp-queries/Likely Bugs/InconsistentCheckReturnNull.ql: /Correctness/Consistent Use
12+
+ semmlecode-cpp-queries/Likely Bugs/InconsistentCallOnResult.ql: /Correctness/Consistent Use
13+
# Common Errors
14+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/AssignWhereCompareMeant.ql: /Correctness/Common Errors
15+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/CompareWhereAssignMeant.ql: /Correctness/Common Errors
16+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/ExprHasNoEffect.ql: /Correctness/Common Errors
17+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/ShortCircuitBitMask.ql: /Correctness/Common Errors
18+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/MissingEnumCaseInSwitch.ql: /Correctness/Common Errors
19+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/FloatComparison.ql: /Correctness/Common Errors
20+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/BitwiseSignCheck.ql: /Correctness/Common Errors
21+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/BadAdditionOverflowCheck.ql: /Correctness/Common Errors
22+
+ semmlecode-cpp-queries/Likely Bugs/NestedLoopSameVar.ql: /Correctness/Common Errors
23+
+ semmlecode-cpp-queries/Likely Bugs/UseInOwnInitializer.ql: /Correctness/Common Errors
24+
+ semmlecode-cpp-queries/Critical/NewArrayDeleteMismatch.ql: /Correctness/Common Errors
25+
+ semmlecode-cpp-queries/Critical/NewDeleteArrayMismatch.ql: /Correctness/Common Errors
26+
+ semmlecode-cpp-queries/Critical/NewFreeMismatch.ql: /Correctness/Common Errors
27+
# Use of Libraries
28+
+ semmlecode-cpp-queries/Likely Bugs/Memory Management/SuspiciousCallToMemset.ql: /Correctness/Use of Libraries
29+
+ semmlecode-cpp-queries/Likely Bugs/Memory Management/SuspiciousSizeof.ql: /Correctness/Use of Libraries
30+
+ semmlecode-cpp-queries/Likely Bugs/Memory Management/UnsafeUseOfStrcat.ql: /Correctness/Use of Libraries
31+
+ semmlecode-cpp-queries/Likely Bugs/Memory Management/SuspiciousCallToStrncat.ql: /Correctness/Use of Libraries
32+
+ semmlecode-cpp-queries/Likely Bugs/Memory Management/StrncpyFlippedArgs.ql: /Correctness/Use of Libraries
33+
+ semmlecode-cpp-queries/Likely Bugs/Format/WrongNumberOfFormatArguments.ql: /Correctness/Use of Libraries
34+
+ semmlecode-cpp-queries/Likely Bugs/Format/TooManyFormatArguments.ql: /Correctness/Use of Libraries
35+
+ semmlecode-cpp-queries/Likely Bugs/Format/WrongTypeFormatArguments.ql: /Correctness/Use of Libraries
36+
+ semmlecode-cpp-queries/Likely Bugs/Format/NonConstantFormat.ql: /Correctness/Use of Libraries
37+
+ semmlecode-cpp-queries/Likely Bugs/Format/SnprintfOverflow.ql: /Correctness/Use of Libraries
38+
+ semmlecode-cpp-queries/jsf/4.21 Operators/AV Rule 166.ql: /Correctness/Use of Libraries # Sizeof with side effects

cpp/config/suites/c/internal

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
+ odasa-cpp-metrics/Internal/CallableDisplayStrings.ql
2+
+ odasa-cpp-metrics/Internal/CallableExtents.ql
3+
+ odasa-cpp-metrics/Internal/CallableSourceLinks.ql
4+
+ odasa-cpp-metrics/Internal/ReftypeDisplayStrings.ql
5+
+ odasa-cpp-metrics/Internal/ReftypeSourceLinks.ql
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# MAINTAINABILITY
2+
# Coupling
3+
+ semmlecode-cpp-queries/jsf/4.06 Pre-Processing Directives/AV Rule 32.ql: /Maintainability/Coupling # Include header files only
4+
+ semmlecode-cpp-queries/jsf/4.07 Header Files/AV Rule 35.ql: /Maintainability/Coupling # Missing header guard
5+
+ semmlecode-cpp-queries/Header Cleanup/Cleanup-DuplicateIncludeGuard.ql: /Maintainability/Coupling # Duplicate header guards
6+
+ semmlecode-cpp-queries/Architecture/FeatureEnvy.ql: /Maintainability/Coupling
7+
+ semmlecode-cpp-queries/Architecture/InappropriateIntimacy.ql: /Maintainability/Coupling
8+
# Size
9+
+ semmlecode-cpp-queries/Architecture/Refactoring Opportunities/ClassesWithManyFields.ql: /Maintainability/Size
10+
@name Structs with too many members
11+
# Documentation
12+
+ semmlecode-cpp-queries/Documentation/CommentedOutCode.ql: /Maintainability/Documentation
13+
+ semmlecode-cpp-queries/Documentation/TodoComments.ql: /Maintainability/Documentation
14+
+ semmlecode-cpp-queries/Documentation/FixmeComments.ql: /Maintainability/Documentation
15+
+ semmlecode-cpp-queries/Documentation/UncommentedFunction.ql: /Maintainability/Documentation
16+
+ semmlecode-cpp-queries/Documentation/DocumentApi.ql: /Maintainability/Documentation
17+
# Declarations
18+
+ semmlecode-cpp-queries/Best Practices/Magic Constants/MagicConstantsString.ql: /Maintainability/Declarations
19+
+ semmlecode-cpp-queries/Best Practices/Magic Constants/MagicConstantsNumbers.ql: /Maintainability/Declarations
20+
+ semmlecode-cpp-queries/Best Practices/SloppyGlobal.ql: /Maintainability/Declarations
21+
# Memory management
22+
+ semmlecode-cpp-queries/Likely Bugs/Memory Management/StackAddressEscapes.ql: /Maintainability/Memory Management

cpp/config/suites/c/metric-defects

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
+ odasa-cpp-metrics/Files/NumberOfPublicGlobals.ql: /Maintainability/Coupling
2+
@warning-from 11
3+
+ odasa-cpp-metrics/Files/FEfferentCoupling.ql: /Maintainability/Coupling
4+
@warning-from 120
5+
+ odasa-cpp-metrics/Functions/FunNumberOfParameters.ql: /Maintainability/Size
6+
@warning-from 9
7+
+ odasa-cpp-metrics/Functions/FunLinesOfCode.ql: /Maintainability/Size
8+
@warning-from 250
9+
+ odasa-cpp-metrics/Files/FLinesOfCode.ql: /Maintainability/Size
10+
@warning-from 1500
11+
# Complexity
12+
+ odasa-cpp-metrics/Functions/FunNumberOfCalls.ql: /Maintainability/Complexity
13+
@warning-from 100
14+
+ odasa-cpp-metrics/Functions/StatementNestingDepth.ql: /Maintainability/Complexity
15+
@recommendation-from 7
16+
+ odasa-cpp-metrics/Functions/FunCyclomaticComplexity.ql: /Maintainability/Complexity
17+
@recommendation-from 100

cpp/config/suites/c/metrics

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# DASHBOARD METRICS
2+
3+
@import metrics-external
4+
5+
# Build
6+
+ odasa-cpp-metrics/Files/FTimeInFrontend.ql: /Metrics/Build
7+
8+
# Complexity
9+
+ odasa-cpp-metrics/Files/FCyclomaticComplexity.ql: /Metrics/Complexity
10+
@treemap.warnOn highValues
11+
+ odasa-cpp-metrics/Files/NumberOfParameters.ql: /Metrics/Complexity
12+
@treemap.warnOn highValues
13+
+ odasa-cpp-metrics/Functions/StatementNestingDepth.ql: /Metrics/Complexity
14+
@treemap.warnOn highValues
15+
16+
# Coupling
17+
+ odasa-cpp-metrics/Files/FAfferentCoupling.ql: /Metrics/Coupling
18+
+ odasa-cpp-metrics/Files/FEfferentCoupling.ql: /Metrics/Coupling
19+
+ semmlecode-cpp-queries/Metrics/Files/FLinesOfDuplicatedCode.ql: /Metrics/Coupling
20+
21+
# Documentation
22+
+ odasa-cpp-metrics/Files/FCommentRatio.ql: /Metrics/Documentation
23+
+ odasa-cpp-metrics/Files/FLinesOfComments.ql: /Metrics/Documentation
24+
+ odasa-cpp-metrics/Files/FTodoComments.ql: /Metrics/Documentation
25+
+ odasa-cpp-metrics/Functions/FunLinesOfComments.ql: /Metrics/Documentation
26+
+ odasa-cpp-metrics/Functions/FunPercentageOfComments.ql: /Metrics/Documentation
27+
@treemap.warnOn lowValues
28+
+ odasa-cpp-metrics/Files/FLinesOfCommentedOutCode.ql: /Metrics/Documentation
29+
30+
# Globals
31+
+ odasa-cpp-metrics/Files/NumberOfFunctions.ql: /Metrics/Globals
32+
+ odasa-cpp-metrics/Files/NumberOfGlobals.ql: /Metrics/Globals
33+
+ odasa-cpp-metrics/Files/NumberOfPublicFunctions.ql: /Metrics/Globals
34+
+ odasa-cpp-metrics/Files/NumberOfPublicGlobals.ql: /Metrics/Globals
35+
36+
# Preprocessor
37+
+ odasa-cpp-metrics/Files/FDirectIncludes.ql: /Metrics/Preprocessor
38+
@treemap.warnOn highValues
39+
+ odasa-cpp-metrics/Files/FMacroRatio.ql: /Metrics/Preprocessor
40+
+ odasa-cpp-metrics/Files/FTransitiveIncludes.ql: /Metrics/Preprocessor
41+
@treemap.warnOn highValues
42+
43+
# Size
44+
+ odasa-cpp-metrics/Files/FLinesOfCode.ql: /Metrics/Size
45+
+ odasa-cpp-metrics/Files/FNumberOfTests.ql: /Metrics/Size
46+
+ odasa-cpp-metrics/Functions/FunLinesOfCode.ql: /Metrics/Size
47+
+ odasa-cpp-metrics/Functions/FunNumberOfStatements.ql: /Metrics/Size
48+
@treemap.warnOn highValues
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
+ odasa-cpp-metrics/External/FileCompilationSourceLinks.ql
2+
+ odasa-cpp-metrics/External/FileCompilationDisplayStrings.ql
3+

cpp/config/suites/c/readability

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# READABILITY
2+
# Expressions
3+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/ComparisonPrecedence.ql: /Readability/Expressions
4+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/UnsignedGEZero.ql: /Readability/Expressions
5+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/PointlessComparison.ql: /Readability/Expressions
6+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/PointlessSelfComparison.ql: /Readability/Expressions
7+
+ semmlecode-cpp-queries/Likely Bugs/Arithmetic/ComparisonWithCancelingSubExpr.ql: /Readability/Expressions
8+
# Control Flow
9+
+ semmlecode-cpp-queries/Best Practices/Likely Errors/EmptyBlock.ql: /Readability/Control Flow
10+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/FutileConditional.ql: /Readability/Control Flow
11+
+ semmlecode-cpp-queries/Likely Bugs/Likely Typos/DubiousNullCheck.ql: /Readability/Control Flow
12+
+ semmlecode-cpp-queries/jsf/4.24 Control Flow Structures/AV Rule 197.ql: /Readability/Control Flow # Avoid floats in for loops
13+
+ semmlecode-cpp-queries/jsf/4.24 Control Flow Structures/AV Rule 201.ql: /Readability/Control Flow # For loop variable changed in body
14+
+ semmlecode-cpp-queries/jsf/4.24 Control Flow Structures/AV Rule 196.ql: /Readability/Control Flow # No trivial switch statements
15+
+ semmlecode-cpp-queries/Likely Bugs/ShortLoopVarName.ql: /Readability/Control Flow
16+
# Declarations
17+
+ semmlecode-cpp-queries/Best Practices/Hiding/LocalVariableHidesGlobalVariable.ql: /Readability/Declarations
18+
+ semmlecode-cpp-queries/Best Practices/Hiding/DeclarationHidesParameter.ql: /Readability/Declarations
19+
+ semmlecode-cpp-queries/Best Practices/Hiding/DeclarationHidesVariable.ql: /Readability/Declarations
20+
+ semmlecode-cpp-queries/jsf/4.13 Functions/AV Rule 107.ql: /Readability/Declarations # Function declared in block
21+
+ semmlecode-cpp-queries/Critical/LargeParameter.ql: /Readability/Declarations
22+
# Size
23+
+ semmlecode-cpp-queries/Best Practices/SwitchLongCase.ql: /Readability/Size
24+
+ semmlecode-cpp-queries/Best Practices/BlockWithTooManyStatements.ql: /Readability/Size
25+
+ semmlecode-cpp-queries/Best Practices/ComplexCondition.ql: /Readability/Size
26+
# Safe Language
27+
+ semmlecode-cpp-queries/Likely Bugs/AmbiguouslySignedBitField.ql: /Readability/Safe Language # Ambiguously signed bit-field member
28+
+ semmlecode-cpp-queries/jsf/4.17 Types/AV Rule 148.ql: /Readability/Safe Language # Use of integer where enum is preferred
29+
+ semmlecode-cpp-queries/jsf/4.16 Initialization/AV Rule 145.ql: /Readability/Safe Language # Enum initialisation
30+
+ semmlecode-cpp-queries/jsf/4.10 Classes/AV Rule 97.ql: /Readability/Safe Language # No arrays in interfaces
31+
+ semmlecode-cpp-queries/Likely Bugs/ReturnConstType.ql: /Readability/Safe Language
32+
+ semmlecode-cpp-queries/jsf/4.13 Functions/AV Rule 114.ql: /Readability/Safe Language
33+
@name Missing return statement
34+
+ semmlecode-cpp-queries/Best Practices/UseOfGoto.ql: /Readability/Safe Language
35+

cpp/config/suites/c/useless-code

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# USELESS CODE
2+
+ semmlecode-cpp-queries/Best Practices/Unused Entities/UnusedStaticFunctions.ql: /Useless Code
3+
+ semmlecode-cpp-queries/Best Practices/Unused Entities/UnusedStaticVariables.ql: /Useless Code
4+
+ semmlecode-cpp-queries/Best Practices/Unused Entities/UnusedLocals.ql: /Useless Code
5+
+ semmlecode-cpp-queries/external/DuplicateFunction.ql: /Useless Code/Duplicate Code
6+
+ semmlecode-cpp-queries/external/MostlyDuplicateFile.ql: /Useless Code/Duplicate Code
7+
+ semmlecode-cpp-queries/external/MostlyDuplicateFunction.ql: /Useless Code/Duplicate Code
8+
+ semmlecode-cpp-queries/external/MostlySimilarFile.ql: /Useless Code/Duplicate Code

cpp/config/suites/cpp/code-review

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
+ semmlecode-cpp-queries/Best Practices/Exceptions/AccidentalRethrow.ql: /Critical/Critical_Correctness/Exceptions
2+
+ semmlecode-cpp-queries/Best Practices/Exceptions/CatchingByValue.ql: /Critical/Critical_Correctness/Exceptions
3+
+ semmlecode-cpp-queries/Best Practices/Exceptions/LeakyCatch.ql: /Critical/Critical_Correctness/Exceptions
4+
+ semmlecode-cpp-queries/Best Practices/Exceptions/ThrowingPointers.ql: /Critical/Critical_Correctness/Exceptions
5+
+ semmlecode-cpp-queries/Likely Bugs/OO/ThrowInDestructor.ql: /Critical/Critical_Readability/Safe Language/C++
6+
+ semmlecode-cpp-queries/jsf/4.10 Classes/AV Rule 95.ql: /Critical/Critical_Readability/JSF # Redefined default parameter
7+
8+
@import ../c/code-review
9+

0 commit comments

Comments
 (0)