# CLEAN — solc (Solidity compiler) Scanned 2026-03-29 for CWE-407 (algorithmic complexity / linear scan membership). ## Areas Checked - `libsolidity/analysis/OverrideChecker.cpp` — inheritance graph cut-vertex algorithm: uses `std::vector` as a bitset indexed by node number — O(1) per visited check. - `libsolidity/analysis/FunctionCallGraph.cpp` — call graph construction: no linear membership checks; uses sets and maps throughout. - `libsolidity/ast/Types.cpp` — type resolution: `seen` is `std::unordered_set` at line 1522 — O(1) membership test. `seenFunctions` is `std::set` — O(log N). - `libsolidity/formal/SMTEncoder.cpp` — modifier visited tracking: `std::set` at line 3006 — O(log N) insert and lookup. - `libsolidity/formal/CHC.cpp` — error dedup: `std::set` — O(log N). - `libsolidity/formal/Z3CHCSmtLib2Interface.cpp` — visitedIds: hash-based, O(1). **Result: No actionable CWE-407 defects found. solc uses unordered_set and set consistently for membership tracking in all graph/traversal algorithms.**