llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-ssaf Author: Aviral Goel (aviralg) <details> <summary>Changes</summary> --- Patch is 219.23 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/207313.diff 260 Files Affected: - (modified) clang/include/clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h (+3-30) - (modified) clang/include/clang/ScalableStaticAnalysis/Core/Model/PrivateFieldNames.def (-1) - (modified) clang/include/clang/ScalableStaticAnalysis/Core/Support/FormatProviders.h (-7) - (modified) clang/lib/ScalableStaticAnalysis/Core/Model/BuildNamespace.cpp (+3-24) - (modified) clang/lib/ScalableStaticAnalysis/Core/ModelStringConversions.h (-36) - (modified) clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.cpp (+1-39) - (modified) clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.h (-13) - (modified) clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/MultiArchStaticLibrary.cpp (-12) - (modified) clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/StaticLibrary.cpp (-10) - (modified) clang/lib/ScalableStaticAnalysis/Frontend/TUSummaryExtractorFrontendAction.cpp (+1-3) - (modified) clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json (-1) - (modified) clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json (-1) - (modified) clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json (-1) - (modified) clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json (-1) - (modified) clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-edges.json (-1) - (modified) clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-odd-count.json (-1) - (modified) clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json (-3) - (modified) clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json (-1) - (modified) clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json (-1) - (modified) clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json (-1) - (modified) clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json (-1) - (modified) clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-bad-epls.json (-1) - (modified) clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-odd-count.json (-1) - (modified) clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json (-4) - (modified) clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/all.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/both.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/pairs.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/tags.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-lu-empty.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-shared-library-empty.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-shared-library-nonempty.json (-5) - (modified) clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-static-library-empty.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-static-library-nonempty.json (-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-static-library-empty.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-tu-empty.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json (+1-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json (+1-6) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json (+1-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json (+1-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json (+1-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json (+1-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json (+1-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json (+1-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json (+1-2) - (removed) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json (-13) - (removed) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json (-12) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json (+1-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/mismatched-type.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-type.json (-1) - (removed) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json (-34) - (removed) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json (-33) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json (+2-5) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json (-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json (-6) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/id-table.test (-25) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/permissions.test (+1-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test (-19) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/duplicate-target-triple.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-empty-lu-namespace.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-inner-error.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-mismatched-type.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-missing-type.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-namespace-mismatch.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-not-object.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/members-not-array.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/mismatched-type.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/missing-members.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/missing-type.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-empty-members.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-multiple-members.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-nonempty-members.json (-5) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-single-member.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-three-members.json (-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/unsorted-members-input.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/unsorted-three-members-input.json (-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/duplicate-target-triple.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-inner-error.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-mismatched-type.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-missing-type.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-namespace-mismatch.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-not-object.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/members-not-array.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/mismatched-type.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/missing-members.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/missing-type.json (-1) - (removed) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/namespace-wrong-kind.json (-8) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-empty-members.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-multiple-members.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-nonempty-members.json (-5) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-single-member.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-three-members.json (-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/unsorted-members-input.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/unsorted-three-members-input.json (-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/top-level.test (-6) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/duplicate-member.json (-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-inner-error.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-mismatched-type.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-missing-type.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-not-object.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-triple-mismatch.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/members-not-array.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/mismatched-type.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-members.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-target-triple.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-type.json (-1) - (removed) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-invalid-kind.json (-9) - (removed) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-missing-kind.json (-8) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-missing-name.json (+1-3) - (removed) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-wrong-kind.json (-9) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/not-normalized-target-triple.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-empty.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-multiple-members.json (-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-single-member.json (-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/unsorted-members-input.json (-4) - (modified) clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/top-level.test (+1-22) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json (+2-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json (-1) - (removed) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json (-11) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json (+2-3) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json (-1) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json (+1-2) - (modified) clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json (-1) ``````````diff diff --git a/clang/include/clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h b/clang/include/clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h index d503b16bf294c..a11b979c4a550 100644 --- a/clang/include/clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h +++ b/clang/include/clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h @@ -27,38 +27,20 @@ namespace clang::ssaf { -enum class BuildNamespaceKind : unsigned short { - CompilationUnit, - LinkUnit, - StaticLibrary, - MultiArchStaticLibrary -}; - /// Represents a single namespace in the build process. /// /// A BuildNamespace groups program entities, such as those belonging to a -/// compilation unit or link unit (e.g., a shared library). Each namespace has a -/// kind (CompilationUnit or LinkUnit) and a unique identifier name within that -/// kind. +/// compilation unit or link unit (e.g., a shared library). Each namespace is +/// identified by a unique name. /// /// BuildNamespaces can be composed into NestedBuildNamespace to represent /// hierarchical namespace structures that model how software is constructed /// from its components. class BuildNamespace { - BuildNamespaceKind Kind; std::string Name; - auto asTuple() const { return std::tie(Kind, Name); } - public: - BuildNamespace(BuildNamespaceKind Kind, llvm::StringRef Name) - : Kind(Kind), Name(Name.str()) {} - - /// Creates a BuildNamespace representing a compilation unit. - /// - /// \param CompilationId The unique identifier for the compilation unit. - /// \returns A BuildNamespace with CompilationUnit kind. - static BuildNamespace makeCompilationUnit(llvm::StringRef CompilationId); + explicit BuildNamespace(llvm::StringRef Name) : Name(Name.str()) {} bool operator==(const BuildNamespace &Other) const; bool operator!=(const BuildNamespace &Other) const; @@ -93,14 +75,6 @@ class NestedBuildNamespace { Namespaces.push_back(N); } - /// Creates a NestedBuildNamespace representing a compilation unit. - /// - /// \param CompilationId The unique identifier for the compilation unit. - /// \returns A NestedBuildNamespace containing a single CompilationUnit - /// BuildNamespace. - static NestedBuildNamespace - makeCompilationUnit(llvm::StringRef CompilationId); - /// Creates a new NestedBuildNamespace by appending additional namespace. /// /// \param Namespace The namespace to append. @@ -124,7 +98,6 @@ class NestedBuildNamespace { const NestedBuildNamespace &NBN); }; -llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, BuildNamespaceKind BNK); llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const BuildNamespace &BN); llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const NestedBuildNamespace &NBN); diff --git a/clang/include/clang/ScalableStaticAnalysis/Core/Model/PrivateFieldNames.def b/clang/include/clang/ScalableStaticAnalysis/Core/Model/PrivateFieldNames.def index 33f47f8f9151c..e77d699814d0e 100644 --- a/clang/include/clang/ScalableStaticAnalysis/Core/Model/PrivateFieldNames.def +++ b/clang/include/clang/ScalableStaticAnalysis/Core/Model/PrivateFieldNames.def @@ -17,7 +17,6 @@ #define FIELD(CLASS, FIELD_NAME) #endif -FIELD(BuildNamespace, Kind) FIELD(BuildNamespace, Name) FIELD(EntityId, Index) FIELD(EntityIdTable, Entities) diff --git a/clang/include/clang/ScalableStaticAnalysis/Core/Support/FormatProviders.h b/clang/include/clang/ScalableStaticAnalysis/Core/Support/FormatProviders.h index e4a7b54033924..b3b9e597dbc74 100644 --- a/clang/include/clang/ScalableStaticAnalysis/Core/Support/FormatProviders.h +++ b/clang/include/clang/ScalableStaticAnalysis/Core/Support/FormatProviders.h @@ -46,13 +46,6 @@ template <> struct format_provider<clang::ssaf::EntityLinkage> { } }; -template <> struct format_provider<clang::ssaf::BuildNamespaceKind> { - static void format(clang::ssaf::BuildNamespaceKind Val, raw_ostream &OS, - StringRef Style) { - OS << Val; - } -}; - template <> struct format_provider<clang::ssaf::BuildNamespace> { static void format(const clang::ssaf::BuildNamespace &Val, raw_ostream &OS, StringRef Style) { diff --git a/clang/lib/ScalableStaticAnalysis/Core/Model/BuildNamespace.cpp b/clang/lib/ScalableStaticAnalysis/Core/Model/BuildNamespace.cpp index f68ed961f71b9..953af8b12534b 100644 --- a/clang/lib/ScalableStaticAnalysis/Core/Model/BuildNamespace.cpp +++ b/clang/lib/ScalableStaticAnalysis/Core/Model/BuildNamespace.cpp @@ -7,21 +7,12 @@ //===----------------------------------------------------------------------===// #include "clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h" -#include "../ModelStringConversions.h" #include "llvm/ADT/STLExtras.h" -#include "llvm/Support/ErrorHandling.h" -#include <tuple> namespace clang::ssaf { -BuildNamespace -BuildNamespace::makeCompilationUnit(llvm::StringRef CompilationId) { - return BuildNamespace{BuildNamespaceKind::CompilationUnit, - CompilationId.str()}; -} - bool BuildNamespace::operator==(const BuildNamespace &Other) const { - return asTuple() == Other.asTuple(); + return Name == Other.Name; } bool BuildNamespace::operator!=(const BuildNamespace &Other) const { @@ -29,15 +20,7 @@ bool BuildNamespace::operator!=(const BuildNamespace &Other) const { } bool BuildNamespace::operator<(const BuildNamespace &Other) const { - return asTuple() < Other.asTuple(); -} - -NestedBuildNamespace -NestedBuildNamespace::makeCompilationUnit(llvm::StringRef CompilationId) { - NestedBuildNamespace Result; - Result.Namespaces.push_back( - BuildNamespace::makeCompilationUnit(CompilationId)); - return Result; + return Name < Other.Name; } bool NestedBuildNamespace::empty() const { return Namespaces.empty(); } @@ -54,12 +37,8 @@ bool NestedBuildNamespace::operator<(const NestedBuildNamespace &Other) const { return Namespaces < Other.Namespaces; } -llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, BuildNamespaceKind BNK) { - return OS << buildNamespaceKindToString(BNK); -} - llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const BuildNamespace &BN) { - return OS << "BuildNamespace(" << BN.Kind << ", " << BN.Name << ")"; + return OS << "BuildNamespace(" << BN.Name << ")"; } llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, diff --git a/clang/lib/ScalableStaticAnalysis/Core/ModelStringConversions.h b/clang/lib/ScalableStaticAnalysis/Core/ModelStringConversions.h index 9a4392bd72990..03f76211e8cea 100644 --- a/clang/lib/ScalableStaticAnalysis/Core/ModelStringConversions.h +++ b/clang/lib/ScalableStaticAnalysis/Core/ModelStringConversions.h @@ -16,7 +16,6 @@ #ifndef LLVM_CLANG_LIB_ScalableStaticAnalysis_CORE_MODELSTRINGCONVERSIONS_H #define LLVM_CLANG_LIB_ScalableStaticAnalysis_CORE_MODELSTRINGCONVERSIONS_H -#include "clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h" #include "clang/ScalableStaticAnalysis/Core/Model/EntityLinkage.h" #include "llvm/ADT/StringRef.h" #include "llvm/Support/ErrorHandling.h" @@ -24,41 +23,6 @@ namespace clang::ssaf { -//===----------------------------------------------------------------------===// -// BuildNamespaceKind -//===----------------------------------------------------------------------===// - -/// Returns the canonical string representation of \p BNK used for -/// serialization and display (e.g. "CompilationUnit", "LinkUnit"). -inline llvm::StringRef buildNamespaceKindToString(BuildNamespaceKind BNK) { - switch (BNK) { - case BuildNamespaceKind::CompilationUnit: - return "CompilationUnit"; - case BuildNamespaceKind::LinkUnit: - return "LinkUnit"; - case BuildNamespaceKind::StaticLibrary: - return "StaticLibrary"; - case BuildNamespaceKind::MultiArchStaticLibrary: - return "MultiArchStaticLibrary"; - } - llvm_unreachable("Unhandled BuildNamespaceKind variant"); -} - -/// Parses a string produced by buildNamespaceKindToString(). Returns -/// std::nullopt if \p Str does not match any known BuildNamespaceKind value. -inline std::optional<BuildNamespaceKind> -buildNamespaceKindFromString(llvm::StringRef Str) { - if (Str == "CompilationUnit") - return BuildNamespaceKind::CompilationUnit; - if (Str == "LinkUnit") - return BuildNamespaceKind::LinkUnit; - if (Str == "StaticLibrary") - return BuildNamespaceKind::StaticLibrary; - if (Str == "MultiArchStaticLibrary") - return BuildNamespaceKind::MultiArchStaticLibrary; - return std::nullopt; -} - //===----------------------------------------------------------------------===// // EntityLinkageType //===----------------------------------------------------------------------===// diff --git a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.cpp b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.cpp index f935761b3c476..95226bef38b97 100644 --- a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.cpp +++ b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.cpp @@ -235,49 +235,12 @@ Object JSONFormat::entityIdToJSONObject(EntityId EI) { return Result; } -//---------------------------------------------------------------------------- -// BuildNamespaceKind -//---------------------------------------------------------------------------- - -llvm::Expected<BuildNamespaceKind> -buildNamespaceKindFromJSON(llvm::StringRef BuildNamespaceKindStr) { - auto OptBuildNamespaceKind = - buildNamespaceKindFromString(BuildNamespaceKindStr); - if (!OptBuildNamespaceKind) { - return ErrorBuilder::create(std::errc::invalid_argument, - ErrorMessages::InvalidBuildNamespaceKind, - BuildNamespaceKindStr) - .build(); - } - return *OptBuildNamespaceKind; -} - -// Provided for consistency with respect to rest of the codebase. -llvm::StringRef buildNamespaceKindToJSON(BuildNamespaceKind BNK) { - return buildNamespaceKindToString(BNK); -} - //---------------------------------------------------------------------------- // BuildNamespace //---------------------------------------------------------------------------- llvm::Expected<BuildNamespace> JSONFormat::buildNamespaceFromJSON(const Object &BuildNamespaceObject) const { - auto OptBuildNamespaceKindStr = BuildNamespaceObject.getString("kind"); - if (!OptBuildNamespaceKindStr) { - return ErrorBuilder::create(std::errc::invalid_argument, - ErrorMessages::FailedToReadObjectAtField, - "BuildNamespaceKind", "kind", "string") - .build(); - } - - auto ExpectedKind = buildNamespaceKindFromJSON(*OptBuildNamespaceKindStr); - if (!ExpectedKind) { - return ErrorBuilder::wrap(ExpectedKind.takeError()) - .context(ErrorMessages::ReadingFromField, "BuildNamespaceKind", "kind") - .build(); - } - auto OptNameStr = BuildNamespaceObject.getString("name"); if (!OptNameStr) { return ErrorBuilder::create(std::errc::invalid_argument, @@ -286,12 +249,11 @@ JSONFormat::buildNamespaceFromJSON(const Object &BuildNamespaceObject) const { .build(); } - return {BuildNamespace(*ExpectedKind, *OptNameStr)}; + return {BuildNamespace(*OptNameStr)}; } Object JSONFormat::buildNamespaceToJSON(const BuildNamespace &BN) const { Object Result; - Result["kind"] = buildNamespaceKindToJSON(getKind(BN)); Result["name"] = getName(BN); return Result; } diff --git a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.h b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.h index b17f296eda1b4..cd3643982dac2 100644 --- a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.h +++ b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.h @@ -108,9 +108,6 @@ inline constexpr const char *FailedToSerializeEntitySummaryMismatchedSummaryName = "JSONFormat - EntitySummary data for '{0}' reports mismatched '{1}'"; -inline constexpr const char *InvalidBuildNamespaceKind = - "invalid BuildNamespaceKind value '{0}' for field 'kind'"; - inline constexpr const char *InvalidEntityLinkageType = "invalid EntityLinkageType value '{0}' for field 'type'"; @@ -200,16 +197,6 @@ llvm::StringRef summaryNameToJSON(const SummaryName &SN); AnalysisName analysisNameFromJSON(llvm::StringRef AnalysisNameStr); llvm::StringRef analysisNameToJSON(const AnalysisName &AN); -//---------------------------------------------------------------------------- -// BuildNamespaceKind helpers -//---------------------------------------------------------------------------- - -llvm::Expected<BuildNamespaceKind> -buildNamespaceKindFromJSON(llvm::StringRef BuildNamespaceKindStr); - -// Provided for consistency with respect to rest of the codebase. -llvm::StringRef buildNamespaceKindToJSON(BuildNamespaceKind BNK); - //---------------------------------------------------------------------------- // EntityLinkageType helpers //---------------------------------------------------------------------------- diff --git a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/MultiArchStaticLibrary.cpp b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/MultiArchStaticLibrary.cpp index e8971a2f34be3..cfa84dbdcf883 100644 --- a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/MultiArchStaticLibrary.cpp +++ b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/MultiArchStaticLibrary.cpp @@ -70,18 +70,6 @@ JSONFormat::readMultiArchStaticLibraryFromObject(const Object &RootObject) { .build(); } - if (getKind(*ExpectedNamespace) != - BuildNamespaceKind::MultiArchStaticLibrary) { - return ErrorBuilder::create( - std::errc::invalid_argument, - ErrorMessages::MismatchedSummaryType, - buildNamespaceKindToJSON( - BuildNamespaceKind::MultiArchStaticLibrary), - "namespace.kind", - buildNamespaceKindToJSON(getKind(*ExpectedNamespace))) - .build(); - } - const Array *MembersArray = RootObject.getArray("members"); if (!MembersArray) { return ErrorBuilder::create(std::errc::invalid_argument, diff --git a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/StaticLibrary.cpp b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/StaticLibrary.cpp index d4538d19aed24..7786c58fa7c04 100644 --- a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/StaticLibrary.cpp +++ b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/StaticLibrary.cpp @@ -86,16 +86,6 @@ JSONFormat::readStaticLibraryFromObject(const Object &RootObject) { .build(); } - if (getKind(*ExpectedNamespace) != BuildNamespaceKind::StaticLibrary) { - return ErrorBuilder::create( - std::errc::invalid_argument, - ErrorMessages::MismatchedSummaryType, - buildNamespaceKindToJSON(BuildNamespaceKind::StaticLibrary), - "namespace.kind", - buildNamespaceKindToJSON(getKind(*ExpectedNamespace))) - .build(); - } - StaticLibrary S(std::move(T), std::move(*ExpectedNamespace)); const Array *MembersArray = RootObject.getArray("members"); diff --git a/clang/lib/ScalableStaticAnalysis/Frontend/TUSummaryExtractorFrontendAction.cpp b/clang/lib/ScalableStaticAnalysis/Frontend/TUSummaryExtractorFrontendAction.cpp index bb4caef8f99ab..5c017ebca5d2c 100644 --- a/clang/lib/ScalableStaticAnalysis/Frontend/TUSummaryExtractorFrontendAction.cpp +++ b/clang/lib/ScalableStaticAnalysis/Frontend/TUSummaryExtractorFrontendAction.cpp @@ -141,9 +141,7 @@ TUSummaryRunner::TUSummaryRunner(llvm::Triple TargetTriple, std::unique_ptr<SerializationFormat> Format, const SSAFOptions &Opts) : MultiplexConsumer(std::vector<std::unique_ptr<ASTConsumer>>{}), - Summary(std::move(TargetTriple), - BuildNamespace(BuildNamespaceKind::CompilationUnit, - Opts.CompilationUnitId)), + Summary(std::move(TargetTriple), BuildNamespace(Opts.CompilationUnitId)), Opts(Opts), Format(std::move(Format)) { assert(this->Format); assert(!Opts.CompilationUnitId.empty()); diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json index 282917559e5b5..adbc21b787283 100644 --- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json +++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json @@ -82,7 +82,6 @@ } ], "tu_namespace": { - "kind": "CompilationUnit", "name": "Mock.cpp" }, "target_triple": "arm64-apple-macosx", diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json index c2c5e119ca330..1e1823ae8ba92 100644 --- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json +++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json @@ -59,7 +59,6 @@ } ], "tu_namespace": { - "kind": "CompilationUnit", "name": "Mock.cpp" }, "target_triple": "arm64-apple-macosx", diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json index 14c654f8b7c14..506fd25759af4 100644 --- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json +++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json @@ -88,7 +88,6 @@ } ], "tu_namespace": { - "kind": "CompilationUnit", "name": "Mock.cpp" }, "target_triple": "arm64-apple-macosx", diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json index 9b0b4575e2f61..e9179fd5843f3 100644 --- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json +++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json @@ -86,7 +86,6 @@ ], "target_triple": "arm64-apple-macosx", "tu_namespace": { - "kind": "CompilationUnit", "name": "Mock.cpp" }, "type": "TUSummary" diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-edges.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-edges.json index 85d68e0b5f1d0..381a2bb7d490a 100644 --- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-edges.json +++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-edges.json @@ -5,7 +5,6 @@ "name": { "namespace": [ { - "kind": "LinkUnit", "name": "test.exe" } ], diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-odd-count.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-odd-count.json index 391926df77dcb..f16c948422626 100644 --- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-odd-count.json +++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-odd-count.json @@ -5,7 +5,6 @@ "name": { "namespace": [ { - "kind": "LinkUnit", "name": "test.exe" } ], diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json index 2d28f8697d339..575184b82b58c 100644 --- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json +++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json @@ -5,7 +5,6 @@ "name": { "namespace": [ { - "kind": "LinkUnit", "name": "test.exe" } ], @@ -18,7 +17,6 @@ "name": { "namespace": [ { - "kind": "LinkUnit", "name": "test.exe" } ], @@ -31,7 +29,6 @@ "name": { "namespace": [ { - "kind": "LinkUnit", "name": "test.exe" } ], diff --git a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summa... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/207313 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
