diff --git a/.vscode/tasks.json b/.vscode/tasks.json index b7e907a3bc..1eda872a06 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -185,13 +185,11 @@ "type": "pickString", "options": [ "Allocations", - "Banned", "BannedFunctions", + "BannedLibraries", "BannedSyntax", "BannedTypes", "Classes", - "Classes", - "Classes", "Comments", "Contracts1", "Concurrency", diff --git a/change_notes/2022-08-17-add-single-translation-unit-suites.md b/change_notes/2022-08-17-add-single-translation-unit-suites.md new file mode 100644 index 0000000000..8301f8c24e --- /dev/null +++ b/change_notes/2022-08-17-add-single-translation-unit-suites.md @@ -0,0 +1,3 @@ + - Added the `autosar-single-translation-unit.qls` and `cert-single-translation-unit.qls` query suites for C++. + - These include a subset of queries which are suitable for running over databases including only a single translation unit. + - The initial version includes rules from the "Banned*" C++ packages. Future updates will add additional queries into this suite as they are identified as suitable. \ No newline at end of file diff --git a/cpp/autosar/src/codeql-suites/autosar-advisory.qls b/cpp/autosar/src/codeql-suites/autosar-advisory.qls index 20cd3098c1..163de00856 100644 --- a/cpp/autosar/src/codeql-suites/autosar-advisory.qls +++ b/cpp/autosar/src/codeql-suites/autosar-advisory.qls @@ -1,4 +1,4 @@ -- description: AUTOSAR C++14 Guidelines 19-11 (Advisory) +- description: AUTOSAR C++14 Guidelines 20-11 (Advisory) - qlpack: autosar-cpp-coding-standards - include: kind: diff --git a/cpp/autosar/src/codeql-suites/autosar-audit.qls b/cpp/autosar/src/codeql-suites/autosar-audit.qls index e131c58401..6e77e82e77 100644 --- a/cpp/autosar/src/codeql-suites/autosar-audit.qls +++ b/cpp/autosar/src/codeql-suites/autosar-audit.qls @@ -1,4 +1,4 @@ -- description: AUTOSAR C++14 Guidelines 19-11 (Audit) +- description: AUTOSAR C++14 Guidelines 20-11 (Audit) - qlpack: autosar-cpp-coding-standards - include: kind: diff --git a/cpp/autosar/src/codeql-suites/autosar-default.qls b/cpp/autosar/src/codeql-suites/autosar-default.qls index 24f4a66a24..0296cc54f8 100644 --- a/cpp/autosar/src/codeql-suites/autosar-default.qls +++ b/cpp/autosar/src/codeql-suites/autosar-default.qls @@ -1,4 +1,4 @@ -- description: AUTOSAR C++14 Guidelines 19-11 (Default) +- description: AUTOSAR C++14 Guidelines 20-11 (Default) - qlpack: autosar-cpp-coding-standards - include: kind: diff --git a/cpp/autosar/src/codeql-suites/autosar-required.qls b/cpp/autosar/src/codeql-suites/autosar-required.qls index b916ee4985..b79562c66c 100644 --- a/cpp/autosar/src/codeql-suites/autosar-required.qls +++ b/cpp/autosar/src/codeql-suites/autosar-required.qls @@ -1,4 +1,4 @@ -- description: AUTOSAR C++14 Guidelines 19-11 (Required) +- description: AUTOSAR C++14 Guidelines 20-11 (Required) - qlpack: autosar-cpp-coding-standards - include: kind: diff --git a/cpp/autosar/src/codeql-suites/autosar-single-translation-unit.qls b/cpp/autosar/src/codeql-suites/autosar-single-translation-unit.qls new file mode 100644 index 0000000000..6ba3032fa8 --- /dev/null +++ b/cpp/autosar/src/codeql-suites/autosar-single-translation-unit.qls @@ -0,0 +1,12 @@ +- description: AUTOSAR C++14 Guidelines 20-11 (Single Translation Unit) +- qlpack: autosar-cpp-coding-standards +- include: + kind: + - problem + - path-problem + tags contain: + - scope/single-translation-unit +- exclude: + tags contain: + - external/autosar/audit + - external/autosar/default-disabled \ No newline at end of file diff --git a/cpp/autosar/src/rules/A0-4-2/TypeLongDoubleUsed.ql b/cpp/autosar/src/rules/A0-4-2/TypeLongDoubleUsed.ql index 4c1eaf6e81..4042eb3530 100644 --- a/cpp/autosar/src/rules/A0-4-2/TypeLongDoubleUsed.ql +++ b/cpp/autosar/src/rules/A0-4-2/TypeLongDoubleUsed.ql @@ -9,6 +9,7 @@ * @tags external/autosar/id/a0-4-2 * correctness * readability + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A11-3-1/FriendDeclarationsUsed.ql b/cpp/autosar/src/rules/A11-3-1/FriendDeclarationsUsed.ql index cae553692e..cce5235f10 100644 --- a/cpp/autosar/src/rules/A11-3-1/FriendDeclarationsUsed.ql +++ b/cpp/autosar/src/rules/A11-3-1/FriendDeclarationsUsed.ql @@ -8,6 +8,7 @@ * @tags external/autosar/id/a11-3-1 * correctness * security + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A17-0-1/ReservedIdentifiersMacrosAndFunctionsAreDefinedRedefinedOrUndefined.ql b/cpp/autosar/src/rules/A17-0-1/ReservedIdentifiersMacrosAndFunctionsAreDefinedRedefinedOrUndefined.ql index 182ab7f6c7..6dea18047d 100644 --- a/cpp/autosar/src/rules/A17-0-1/ReservedIdentifiersMacrosAndFunctionsAreDefinedRedefinedOrUndefined.ql +++ b/cpp/autosar/src/rules/A17-0-1/ReservedIdentifiersMacrosAndFunctionsAreDefinedRedefinedOrUndefined.ql @@ -14,6 +14,7 @@ * @tags external/autosar/id/a17-0-1 * correctness * maintainability + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A18-0-1/CLibraryFacilitiesNotAccessedThroughCPPLibraryHeaders.ql b/cpp/autosar/src/rules/A18-0-1/CLibraryFacilitiesNotAccessedThroughCPPLibraryHeaders.ql index 33d6c093f4..ada60f305d 100644 --- a/cpp/autosar/src/rules/A18-0-1/CLibraryFacilitiesNotAccessedThroughCPPLibraryHeaders.ql +++ b/cpp/autosar/src/rules/A18-0-1/CLibraryFacilitiesNotAccessedThroughCPPLibraryHeaders.ql @@ -9,6 +9,7 @@ * @tags external/autosar/id/a18-0-1 * correctness * readability + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A18-0-3/LocaleFunctionsUsed.ql b/cpp/autosar/src/rules/A18-0-3/LocaleFunctionsUsed.ql index dbe1bca735..66da04f22e 100644 --- a/cpp/autosar/src/rules/A18-0-3/LocaleFunctionsUsed.ql +++ b/cpp/autosar/src/rules/A18-0-3/LocaleFunctionsUsed.ql @@ -14,6 +14,7 @@ * @problem.severity warning * @tags external/autosar/id/a18-0-3 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A18-0-3/LocaleMacrosUsed.ql b/cpp/autosar/src/rules/A18-0-3/LocaleMacrosUsed.ql index c3afc9af51..e4579a377c 100644 --- a/cpp/autosar/src/rules/A18-0-3/LocaleMacrosUsed.ql +++ b/cpp/autosar/src/rules/A18-0-3/LocaleMacrosUsed.ql @@ -9,6 +9,7 @@ * @problem.severity warning * @tags external/autosar/id/a18-0-3 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A18-0-3/LocaleTypeLConvUsed.ql b/cpp/autosar/src/rules/A18-0-3/LocaleTypeLConvUsed.ql index e4366b98cf..8ba8beb259 100644 --- a/cpp/autosar/src/rules/A18-0-3/LocaleTypeLConvUsed.ql +++ b/cpp/autosar/src/rules/A18-0-3/LocaleTypeLConvUsed.ql @@ -8,6 +8,7 @@ * @problem.severity warning * @tags external/autosar/id/a18-0-3 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A18-1-1/CStyleArraysUsed.ql b/cpp/autosar/src/rules/A18-1-1/CStyleArraysUsed.ql index ed93672ea2..83d0220c5a 100644 --- a/cpp/autosar/src/rules/A18-1-1/CStyleArraysUsed.ql +++ b/cpp/autosar/src/rules/A18-1-1/CStyleArraysUsed.ql @@ -8,6 +8,7 @@ * @problem.severity error * @tags external/autosar/id/a18-1-1 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A18-1-2/VectorboolSpecializationUsed.ql b/cpp/autosar/src/rules/A18-1-2/VectorboolSpecializationUsed.ql index 3b1d7a242f..9d3e315f08 100644 --- a/cpp/autosar/src/rules/A18-1-2/VectorboolSpecializationUsed.ql +++ b/cpp/autosar/src/rules/A18-1-2/VectorboolSpecializationUsed.ql @@ -9,6 +9,7 @@ * @problem.severity warning * @tags external/autosar/id/a18-1-2 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A18-1-3/AutoPtrTypeUsed.ql b/cpp/autosar/src/rules/A18-1-3/AutoPtrTypeUsed.ql index a7f3882d06..beb93c739a 100644 --- a/cpp/autosar/src/rules/A18-1-3/AutoPtrTypeUsed.ql +++ b/cpp/autosar/src/rules/A18-1-3/AutoPtrTypeUsed.ql @@ -7,6 +7,7 @@ * @problem.severity warning * @tags external/autosar/id/a18-1-3 * maintainability + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A18-5-1/FunctionsMallocCallocReallocAndFreeUsed.ql b/cpp/autosar/src/rules/A18-5-1/FunctionsMallocCallocReallocAndFreeUsed.ql index 670e04f6e3..81c090d7de 100644 --- a/cpp/autosar/src/rules/A18-5-1/FunctionsMallocCallocReallocAndFreeUsed.ql +++ b/cpp/autosar/src/rules/A18-5-1/FunctionsMallocCallocReallocAndFreeUsed.ql @@ -8,6 +8,7 @@ * @problem.severity error * @tags external/autosar/id/a18-5-1 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A18-9-1/BindUsed.ql b/cpp/autosar/src/rules/A18-9-1/BindUsed.ql index 03a6bc58c7..d53d6ecf76 100644 --- a/cpp/autosar/src/rules/A18-9-1/BindUsed.ql +++ b/cpp/autosar/src/rules/A18-9-1/BindUsed.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/a18-9-1 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A2-11-1/VolatileKeywordUsed.ql b/cpp/autosar/src/rules/A2-11-1/VolatileKeywordUsed.ql index ea66493985..bd297255a7 100644 --- a/cpp/autosar/src/rules/A2-11-1/VolatileKeywordUsed.ql +++ b/cpp/autosar/src/rules/A2-11-1/VolatileKeywordUsed.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/a2-11-1 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/design * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated diff --git a/cpp/autosar/src/rules/A2-13-3/TypeWcharTUsed.ql b/cpp/autosar/src/rules/A2-13-3/TypeWcharTUsed.ql index 958edee8da..af077da0eb 100644 --- a/cpp/autosar/src/rules/A2-13-3/TypeWcharTUsed.ql +++ b/cpp/autosar/src/rules/A2-13-3/TypeWcharTUsed.ql @@ -8,6 +8,7 @@ * @tags external/autosar/id/a2-13-3 * correctness * readability + * scope/single-translation-unit * external/autosar/allocated-target/architecture * external/autosar/allocated-target/design * external/autosar/allocated-target/implementation diff --git a/cpp/autosar/src/rules/A26-5-1/PseudorandomNumbersGeneratedUsingRand.ql b/cpp/autosar/src/rules/A26-5-1/PseudorandomNumbersGeneratedUsingRand.ql index bcf5357f57..17411c0685 100644 --- a/cpp/autosar/src/rules/A26-5-1/PseudorandomNumbersGeneratedUsingRand.ql +++ b/cpp/autosar/src/rules/A26-5-1/PseudorandomNumbersGeneratedUsingRand.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/a26-5-1 * security + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A5-16-1/TernaryConditionalOperatorUsedAsSubExpression.ql b/cpp/autosar/src/rules/A5-16-1/TernaryConditionalOperatorUsedAsSubExpression.ql index 528b3494e6..32376b7a32 100644 --- a/cpp/autosar/src/rules/A5-16-1/TernaryConditionalOperatorUsedAsSubExpression.ql +++ b/cpp/autosar/src/rules/A5-16-1/TernaryConditionalOperatorUsedAsSubExpression.ql @@ -8,6 +8,7 @@ * @problem.severity error * @tags external/autosar/id/a5-16-1 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A5-2-1/DynamicCastShouldNotBeUsed.ql b/cpp/autosar/src/rules/A5-2-1/DynamicCastShouldNotBeUsed.ql index 67e78a0f44..273d70688a 100644 --- a/cpp/autosar/src/rules/A5-2-1/DynamicCastShouldNotBeUsed.ql +++ b/cpp/autosar/src/rules/A5-2-1/DynamicCastShouldNotBeUsed.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/a5-2-1 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/advisory diff --git a/cpp/autosar/src/rules/A5-2-2/TraditionalCStyleCastsUsed.ql b/cpp/autosar/src/rules/A5-2-2/TraditionalCStyleCastsUsed.ql index c3cb690573..0b6962c06e 100644 --- a/cpp/autosar/src/rules/A5-2-2/TraditionalCStyleCastsUsed.ql +++ b/cpp/autosar/src/rules/A5-2-2/TraditionalCStyleCastsUsed.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/a5-2-2 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A5-2-4/ReinterpretCastUsed.ql b/cpp/autosar/src/rules/A5-2-4/ReinterpretCastUsed.ql index 639728a0ca..92cf12d8a0 100644 --- a/cpp/autosar/src/rules/A5-2-4/ReinterpretCastUsed.ql +++ b/cpp/autosar/src/rules/A5-2-4/ReinterpretCastUsed.ql @@ -8,6 +8,7 @@ * @tags external/autosar/id/a5-2-4 * correctness * security + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A6-6-1/GotoStatementUsed.ql b/cpp/autosar/src/rules/A6-6-1/GotoStatementUsed.ql index 0b91f5d144..5e1c10e4c7 100644 --- a/cpp/autosar/src/rules/A6-6-1/GotoStatementUsed.ql +++ b/cpp/autosar/src/rules/A6-6-1/GotoStatementUsed.ql @@ -8,6 +8,7 @@ * @tags external/autosar/id/a6-6-1 * correctness * security + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A7-1-4/RegisterKeywordUsed.ql b/cpp/autosar/src/rules/A7-1-4/RegisterKeywordUsed.ql index 94e8a2f88f..9a5b6abfb4 100644 --- a/cpp/autosar/src/rules/A7-1-4/RegisterKeywordUsed.ql +++ b/cpp/autosar/src/rules/A7-1-4/RegisterKeywordUsed.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/a7-1-4 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A7-1-6/TypedefSpecifierUsed.ql b/cpp/autosar/src/rules/A7-1-6/TypedefSpecifierUsed.ql index b1feb42cfa..a459309746 100644 --- a/cpp/autosar/src/rules/A7-1-6/TypedefSpecifierUsed.ql +++ b/cpp/autosar/src/rules/A7-1-6/TypedefSpecifierUsed.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/a7-1-6 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A7-4-1/AsmDeclarationUsed.ql b/cpp/autosar/src/rules/A7-4-1/AsmDeclarationUsed.ql index e3c04e7c47..d94811ff18 100644 --- a/cpp/autosar/src/rules/A7-4-1/AsmDeclarationUsed.ql +++ b/cpp/autosar/src/rules/A7-4-1/AsmDeclarationUsed.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/a7-4-1 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A8-4-1/FunctionsDefinedUsingTheEllipsisNotation.ql b/cpp/autosar/src/rules/A8-4-1/FunctionsDefinedUsingTheEllipsisNotation.ql index b76e7d07d2..e8ec75aeae 100644 --- a/cpp/autosar/src/rules/A8-4-1/FunctionsDefinedUsingTheEllipsisNotation.ql +++ b/cpp/autosar/src/rules/A8-4-1/FunctionsDefinedUsingTheEllipsisNotation.ql @@ -8,6 +8,7 @@ * @tags external/autosar/id/a8-4-1 * correctness * security + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/A9-5-1/UnionsUsed.ql b/cpp/autosar/src/rules/A9-5-1/UnionsUsed.ql index e0d4e64b5c..d44e44dedf 100644 --- a/cpp/autosar/src/rules/A9-5-1/UnionsUsed.ql +++ b/cpp/autosar/src/rules/A9-5-1/UnionsUsed.ql @@ -8,6 +8,7 @@ * @problem.severity error * @tags external/autosar/id/a9-5-1 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M17-0-5/SetjmpMacroAndTheLongjmpFunctionUsed.ql b/cpp/autosar/src/rules/M17-0-5/SetjmpMacroAndTheLongjmpFunctionUsed.ql index 814c9f11e1..6a6f55e0f4 100644 --- a/cpp/autosar/src/rules/M17-0-5/SetjmpMacroAndTheLongjmpFunctionUsed.ql +++ b/cpp/autosar/src/rules/M17-0-5/SetjmpMacroAndTheLongjmpFunctionUsed.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/m17-0-5 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M18-0-3/LibraryFunctionsAbortExitGetenvAndSystemFromLibraryCstdlibUsed.ql b/cpp/autosar/src/rules/M18-0-3/LibraryFunctionsAbortExitGetenvAndSystemFromLibraryCstdlibUsed.ql index 5d02b082fa..8aabeac1e6 100644 --- a/cpp/autosar/src/rules/M18-0-3/LibraryFunctionsAbortExitGetenvAndSystemFromLibraryCstdlibUsed.ql +++ b/cpp/autosar/src/rules/M18-0-3/LibraryFunctionsAbortExitGetenvAndSystemFromLibraryCstdlibUsed.ql @@ -8,6 +8,7 @@ * @tags external/autosar/id/m18-0-3 * correctness * security + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M18-0-4/TimeHandlingFunctionsOfLibraryCtimeUsed.ql b/cpp/autosar/src/rules/M18-0-4/TimeHandlingFunctionsOfLibraryCtimeUsed.ql index c896cbc1fb..9ba6ad319e 100644 --- a/cpp/autosar/src/rules/M18-0-4/TimeHandlingFunctionsOfLibraryCtimeUsed.ql +++ b/cpp/autosar/src/rules/M18-0-4/TimeHandlingFunctionsOfLibraryCtimeUsed.ql @@ -8,6 +8,7 @@ * @tags external/autosar/id/m18-0-4 * correctness * security + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M18-0-5/UnboundedFunctionsOfLibraryCstringUsed.ql b/cpp/autosar/src/rules/M18-0-5/UnboundedFunctionsOfLibraryCstringUsed.ql index 9cf02f92bc..be8c0dca09 100644 --- a/cpp/autosar/src/rules/M18-0-5/UnboundedFunctionsOfLibraryCstringUsed.ql +++ b/cpp/autosar/src/rules/M18-0-5/UnboundedFunctionsOfLibraryCstringUsed.ql @@ -8,6 +8,7 @@ * @tags external/autosar/id/m18-0-5 * security * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M18-2-1/MacroOffsetofUsed.ql b/cpp/autosar/src/rules/M18-2-1/MacroOffsetofUsed.ql index ef1cbac322..a572497418 100644 --- a/cpp/autosar/src/rules/M18-2-1/MacroOffsetofUsed.ql +++ b/cpp/autosar/src/rules/M18-2-1/MacroOffsetofUsed.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/m18-2-1 * security + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M18-7-1/CsignalFunctionsUsed.ql b/cpp/autosar/src/rules/M18-7-1/CsignalFunctionsUsed.ql index 008875bc72..ff264baffc 100644 --- a/cpp/autosar/src/rules/M18-7-1/CsignalFunctionsUsed.ql +++ b/cpp/autosar/src/rules/M18-7-1/CsignalFunctionsUsed.ql @@ -8,6 +8,7 @@ * @tags external/autosar/id/m18-7-1 * maintainability * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M18-7-1/CsignalTypesUsed.ql b/cpp/autosar/src/rules/M18-7-1/CsignalTypesUsed.ql index 88a8657585..c91d56c572 100644 --- a/cpp/autosar/src/rules/M18-7-1/CsignalTypesUsed.ql +++ b/cpp/autosar/src/rules/M18-7-1/CsignalTypesUsed.ql @@ -8,6 +8,7 @@ * @tags external/autosar/id/m18-7-1 * maintainability * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M19-3-1/ErrnoUsed.ql b/cpp/autosar/src/rules/M19-3-1/ErrnoUsed.ql index 67c724af60..810b76e86a 100644 --- a/cpp/autosar/src/rules/M19-3-1/ErrnoUsed.ql +++ b/cpp/autosar/src/rules/M19-3-1/ErrnoUsed.ql @@ -10,6 +10,7 @@ * @tags external/autosar/id/m19-3-1 * correctness * maintainability + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M27-0-1/CstdioFunctionsUsed.ql b/cpp/autosar/src/rules/M27-0-1/CstdioFunctionsUsed.ql index 581ad24901..55254581a6 100644 --- a/cpp/autosar/src/rules/M27-0-1/CstdioFunctionsUsed.ql +++ b/cpp/autosar/src/rules/M27-0-1/CstdioFunctionsUsed.ql @@ -9,6 +9,7 @@ * @tags external/autosar/id/m27-0-1 * maintainability * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M27-0-1/CstdioMacrosUsed.ql b/cpp/autosar/src/rules/M27-0-1/CstdioMacrosUsed.ql index e1a83fdfdf..eadbc874f9 100644 --- a/cpp/autosar/src/rules/M27-0-1/CstdioMacrosUsed.ql +++ b/cpp/autosar/src/rules/M27-0-1/CstdioMacrosUsed.ql @@ -9,6 +9,7 @@ * @tags external/autosar/id/m27-0-1 * maintainability * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M27-0-1/CstdioTypesUsed.ql b/cpp/autosar/src/rules/M27-0-1/CstdioTypesUsed.ql index 2d967a2581..442264fad1 100644 --- a/cpp/autosar/src/rules/M27-0-1/CstdioTypesUsed.ql +++ b/cpp/autosar/src/rules/M27-0-1/CstdioTypesUsed.ql @@ -9,6 +9,7 @@ * @tags external/autosar/id/m27-0-1 * maintainability * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M5-18-1/CommaOperatorUsed.ql b/cpp/autosar/src/rules/M5-18-1/CommaOperatorUsed.ql index 4f2776c4fc..54e81f9a04 100644 --- a/cpp/autosar/src/rules/M5-18-1/CommaOperatorUsed.ql +++ b/cpp/autosar/src/rules/M5-18-1/CommaOperatorUsed.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/m5-18-1 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M7-3-4/UsingDirectivesUsed.ql b/cpp/autosar/src/rules/M7-3-4/UsingDirectivesUsed.ql index 3c16928dc8..6189185ff6 100644 --- a/cpp/autosar/src/rules/M7-3-4/UsingDirectivesUsed.ql +++ b/cpp/autosar/src/rules/M7-3-4/UsingDirectivesUsed.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/autosar/id/m7-3-4 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M7-3-6/UsingDeclarationsUsedInHeaderFiles.ql b/cpp/autosar/src/rules/M7-3-6/UsingDeclarationsUsedInHeaderFiles.ql index 42842cc859..84b8c45a86 100644 --- a/cpp/autosar/src/rules/M7-3-6/UsingDeclarationsUsedInHeaderFiles.ql +++ b/cpp/autosar/src/rules/M7-3-6/UsingDeclarationsUsedInHeaderFiles.ql @@ -8,6 +8,7 @@ * @problem.severity error * @tags external/autosar/id/m7-3-6 * correctness + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/enforcement/automated * external/autosar/obligation/required diff --git a/cpp/autosar/src/rules/M7-4-1/UsageOfAssemblerNotDocumented.ql b/cpp/autosar/src/rules/M7-4-1/UsageOfAssemblerNotDocumented.ql index c0c090269a..418a96ffee 100644 --- a/cpp/autosar/src/rules/M7-4-1/UsageOfAssemblerNotDocumented.ql +++ b/cpp/autosar/src/rules/M7-4-1/UsageOfAssemblerNotDocumented.ql @@ -8,6 +8,7 @@ * @tags external/autosar/id/m7-4-1 * readability * maintainability + * scope/single-translation-unit * external/autosar/allocated-target/implementation * external/autosar/audit * external/autosar/enforcement/non-automated diff --git a/cpp/cert/src/codeql-suites/cert-single-translation-unit.qls b/cpp/cert/src/codeql-suites/cert-single-translation-unit.qls new file mode 100644 index 0000000000..ca1315d6ff --- /dev/null +++ b/cpp/cert/src/codeql-suites/cert-single-translation-unit.qls @@ -0,0 +1,11 @@ +- description: CERT C++ 2016 (Single Translation Unit) +- qlpack: cert-cpp-coding-standards +- include: + kind: + - problem + - path-problem + tags contain: + - scope/single-translation-unit +- exclude: + tags contain: + - external/cert/default-disabled \ No newline at end of file diff --git a/cpp/cert/src/rules/DCL50-CPP/DoNotDefineACStyleVariadicFunction.ql b/cpp/cert/src/rules/DCL50-CPP/DoNotDefineACStyleVariadicFunction.ql index 9607709b5d..368f154e22 100644 --- a/cpp/cert/src/rules/DCL50-CPP/DoNotDefineACStyleVariadicFunction.ql +++ b/cpp/cert/src/rules/DCL50-CPP/DoNotDefineACStyleVariadicFunction.ql @@ -8,6 +8,7 @@ * @tags external/cert/id/dcl50-cpp * correctness * security + * scope/single-translation-unit * external/cert/obligation/rule */ diff --git a/cpp/cert/src/rules/ERR52-CPP/DoNotUseSetjmpOrLongjmp.ql b/cpp/cert/src/rules/ERR52-CPP/DoNotUseSetjmpOrLongjmp.ql index dcced44ade..ff7fc47dd6 100644 --- a/cpp/cert/src/rules/ERR52-CPP/DoNotUseSetjmpOrLongjmp.ql +++ b/cpp/cert/src/rules/ERR52-CPP/DoNotUseSetjmpOrLongjmp.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/cert/id/err52-cpp * correctness + * scope/single-translation-unit * external/cert/obligation/rule */ diff --git a/cpp/cert/src/rules/MSC50-CPP/DoNotUseRandForGeneratingPseudorandomNumbers.ql b/cpp/cert/src/rules/MSC50-CPP/DoNotUseRandForGeneratingPseudorandomNumbers.ql index ea2f3be3e5..bf58920b84 100644 --- a/cpp/cert/src/rules/MSC50-CPP/DoNotUseRandForGeneratingPseudorandomNumbers.ql +++ b/cpp/cert/src/rules/MSC50-CPP/DoNotUseRandForGeneratingPseudorandomNumbers.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/cert/id/msc50-cpp * security + * scope/single-translation-unit * external/cert/obligation/rule */ diff --git a/cpp/cert/src/rules/OOP57-CPP/PreferSpecialMemberFunctionsAndOverloadedOperatorsToCStandardLibraryFunctions.ql b/cpp/cert/src/rules/OOP57-CPP/PreferSpecialMemberFunctionsAndOverloadedOperatorsToCStandardLibraryFunctions.ql index 945280aafd..19b14730bb 100644 --- a/cpp/cert/src/rules/OOP57-CPP/PreferSpecialMemberFunctionsAndOverloadedOperatorsToCStandardLibraryFunctions.ql +++ b/cpp/cert/src/rules/OOP57-CPP/PreferSpecialMemberFunctionsAndOverloadedOperatorsToCStandardLibraryFunctions.ql @@ -7,6 +7,7 @@ * @problem.severity error * @tags external/cert/id/oop57-cpp * correctness + * scope/single-translation-unit * external/cert/obligation/rule */ diff --git a/rule_packages/cpp/BannedFunctions.json b/rule_packages/cpp/BannedFunctions.json index a6b37765dd..1ee1dc31e2 100644 --- a/rule_packages/cpp/BannedFunctions.json +++ b/rule_packages/cpp/BannedFunctions.json @@ -17,7 +17,8 @@ "severity": "error", "short_name": "FunctionsMallocCallocReallocAndFreeUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -40,7 +41,8 @@ "severity": "error", "short_name": "BindUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -62,9 +64,10 @@ "precision": "very-high", "severity": "error", "short_name": "PseudorandomNumbersGeneratedUsingRand", - "shared_implementation_short_name" : "DoNotUseRandForGeneratingPseudorandomNumbers", + "shared_implementation_short_name": "DoNotUseRandForGeneratingPseudorandomNumbers", "tags": [ - "security" + "security", + "scope/single-translation-unit" ] } ], @@ -87,7 +90,8 @@ "severity": "error", "short_name": "SetjmpMacroAndTheLongjmpFunctionUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -111,7 +115,8 @@ "short_name": "LibraryFunctionsAbortExitGetenvAndSystemFromLibraryCstdlibUsed", "tags": [ "correctness", - "security" + "security", + "scope/single-translation-unit" ] } ], @@ -135,7 +140,8 @@ "short_name": "TimeHandlingFunctionsOfLibraryCtimeUsed", "tags": [ "correctness", - "security" + "security", + "scope/single-translation-unit" ] } ], @@ -159,7 +165,8 @@ "short_name": "UnboundedFunctionsOfLibraryCstringUsed", "tags": [ "security", - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -182,7 +189,8 @@ "severity": "error", "short_name": "MacroOffsetofUsed", "tags": [ - "security" + "security", + "scope/single-translation-unit" ] } ], @@ -203,7 +211,8 @@ "severity": "error", "short_name": "DoNotUseSetjmpOrLongjmp", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -221,9 +230,10 @@ "precision": "very-high", "severity": "error", "short_name": "DoNotUseRandForGeneratingPseudorandomNumbers", - "shared_implementation_short_name" : "DoNotUseRandForGeneratingPseudorandomNumbers", + "shared_implementation_short_name": "DoNotUseRandForGeneratingPseudorandomNumbers", "tags": [ - "security" + "security", + "scope/single-translation-unit" ] } ], @@ -242,7 +252,8 @@ "severity": "error", "short_name": "PreferSpecialMemberFunctionsAndOverloadedOperatorsToCStandardLibraryFunctions", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], diff --git a/rule_packages/cpp/BannedLibraries.json b/rule_packages/cpp/BannedLibraries.json index 4eb242390e..4eb5896cfd 100644 --- a/rule_packages/cpp/BannedLibraries.json +++ b/rule_packages/cpp/BannedLibraries.json @@ -18,7 +18,8 @@ "short_name": "ReservedIdentifiersMacrosAndFunctionsAreDefinedRedefinedOrUndefined", "tags": [ "correctness", - "maintainability" + "maintainability", + "scope/single-translation-unit" ] } ], @@ -42,7 +43,8 @@ "short_name": "CLibraryFacilitiesNotAccessedThroughCPPLibraryHeaders", "tags": [ "correctness", - "readability" + "readability", + "scope/single-translation-unit" ] } ], @@ -65,7 +67,8 @@ "severity": "warning", "short_name": "LocaleFunctionsUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] }, { @@ -76,7 +79,8 @@ "severity": "warning", "short_name": "LocaleMacrosUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] }, { @@ -87,7 +91,8 @@ "severity": "warning", "short_name": "LocaleTypeLConvUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -111,7 +116,8 @@ "short_name": "CsignalFunctionsUsed", "tags": [ "maintainability", - "correctness" + "correctness", + "scope/single-translation-unit" ] }, { @@ -123,7 +129,8 @@ "short_name": "CsignalTypesUsed", "tags": [ "maintainability", - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -147,7 +154,8 @@ "short_name": "ErrnoUsed", "tags": [ "correctness", - "maintainability" + "maintainability", + "scope/single-translation-unit" ] } ], @@ -171,7 +179,8 @@ "short_name": "CstdioFunctionsUsed", "tags": [ "maintainability", - "correctness" + "correctness", + "scope/single-translation-unit" ] }, { @@ -183,7 +192,8 @@ "short_name": "CstdioMacrosUsed", "tags": [ "maintainability", - "correctness" + "correctness", + "scope/single-translation-unit" ] }, { @@ -195,7 +205,8 @@ "short_name": "CstdioTypesUsed", "tags": [ "maintainability", - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -220,7 +231,8 @@ "short_name": "UsageOfAssemblerNotDocumented", "tags": [ "readability", - "maintainability" + "maintainability", + "scope/single-translation-unit" ] } ], diff --git a/rule_packages/cpp/BannedSyntax.json b/rule_packages/cpp/BannedSyntax.json index c11fade1c2..e2f3ce6ef7 100644 --- a/rule_packages/cpp/BannedSyntax.json +++ b/rule_packages/cpp/BannedSyntax.json @@ -18,7 +18,8 @@ "short_name": "FriendDeclarationsUsed", "tags": [ "correctness", - "security" + "security", + "scope/single-translation-unit" ] } ], @@ -41,7 +42,8 @@ "severity": "error", "short_name": "CStyleArraysUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -65,7 +67,8 @@ "severity": "error", "short_name": "VolatileKeywordUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -88,7 +91,8 @@ "severity": "error", "short_name": "TernaryConditionalOperatorUsedAsSubExpression", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -111,7 +115,8 @@ "severity": "error", "short_name": "DynamicCastShouldNotBeUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -134,7 +139,8 @@ "severity": "error", "short_name": "TraditionalCStyleCastsUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -158,7 +164,8 @@ "short_name": "ReinterpretCastUsed", "tags": [ "correctness", - "security" + "security", + "scope/single-translation-unit" ] } ], @@ -182,7 +189,8 @@ "short_name": "GotoStatementUsed", "tags": [ "correctness", - "security" + "security", + "scope/single-translation-unit" ] } ], @@ -205,7 +213,8 @@ "severity": "error", "short_name": "RegisterKeywordUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -228,7 +237,8 @@ "severity": "error", "short_name": "TypedefSpecifierUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -251,7 +261,8 @@ "severity": "error", "short_name": "AsmDeclarationUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -275,7 +286,8 @@ "short_name": "FunctionsDefinedUsingTheEllipsisNotation", "tags": [ "correctness", - "security" + "security", + "scope/single-translation-unit" ] } ], @@ -298,7 +310,8 @@ "severity": "error", "short_name": "UnionsUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -322,7 +335,8 @@ "short_name": "CommaOperatorUsed", "shared_implementation_short_name": "CommaOperatorUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -345,7 +359,8 @@ "severity": "error", "short_name": "UsingDirectivesUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -368,7 +383,8 @@ "severity": "error", "short_name": "UsingDeclarationsUsedInHeaderFiles", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -390,11 +406,12 @@ "short_name": "DoNotDefineACStyleVariadicFunction", "tags": [ "correctness", - "security" + "security", + "scope/single-translation-unit" ] } ], "title": "Do not define a C-style variadic function" } } -} +} \ No newline at end of file diff --git a/rule_packages/cpp/BannedTypes.json b/rule_packages/cpp/BannedTypes.json index e055192c89..4a45433746 100644 --- a/rule_packages/cpp/BannedTypes.json +++ b/rule_packages/cpp/BannedTypes.json @@ -18,7 +18,8 @@ "short_name": "TypeLongDoubleUsed", "tags": [ "correctness", - "readability" + "readability", + "scope/single-translation-unit" ] } ], @@ -41,7 +42,8 @@ "severity": "warning", "short_name": "VectorboolSpecializationUsed", "tags": [ - "correctness" + "correctness", + "scope/single-translation-unit" ] } ], @@ -64,7 +66,8 @@ "severity": "warning", "short_name": "AutoPtrTypeUsed", "tags": [ - "maintainability" + "maintainability", + "scope/single-translation-unit" ] } ], @@ -90,7 +93,8 @@ "short_name": "TypeWcharTUsed", "tags": [ "correctness", - "readability" + "readability", + "scope/single-translation-unit" ] } ], diff --git a/schemas/rule-package.schema.json b/schemas/rule-package.schema.json index 2e8b6298d1..4d3c7f401a 100644 --- a/schemas/rule-package.schema.json +++ b/schemas/rule-package.schema.json @@ -287,7 +287,9 @@ "external/autosar/audit", "external/autosar/default-disabled", "external/cert/default-disabled", - "external/autosar/strict" + "external/autosar/strict", + "scope/single-translation-unit", + "scope/system" ] }, "minLength": 1