Executable formats
Version-script pattern coverage
Compare GNU version-script patterns with an explicit defined-symbol list.
Your inputs
Start with an exampleYour result
Example resultHow it works
Match raw global/local patterns, keep quoted names literal and report missing exact names, unmatched globs, cross-node global overlaps and node-reference problems. Parent nodes add graph edges, not inherited pattern lists.
foo and api_* each match one symbol. missing is absent. local:* covers all three supplied symbols without making a visibility verdict.
Limits
Up to 200 nodes, 1000 patterns and 5000 ASCII symbols. Supports *, ?, simple bracket sets/ranges, C comments and one parent per named node. Rejects extern blocks, advanced glob classes, escapes, @version names and embedded linker scripts. No ELF reading, link invocation, winning-node or final-export decision.