Commit graph

2 commits

Author SHA1 Message Date
trvon
72bc61f2c4
Document library expansion audit results 2026-05-25 09:55:55 -04:00
trvon
1a7b6c1302
feat(detect): deprecated-api detector via clang::Decl::isDeprecated
New AST-only detector that flags call sites whose target decl is
marked deprecated under any of the three idioms:

- `[[deprecated]]` / `[[deprecated("why")]]` (C++14 attribute)
- `__attribute__((deprecated))` (GCC/Clang extension)
- `__attribute__((availability(...,deprecated=N.M)))` (Apple)

Per-call rather than per-decl so a migration that updates call
sites one at a time shows monotone progress. Deprecation reason
(when present) carries through into finding.message. System-header
call sites are skipped so the report stays scoped to the user's
own code.

Curl baseline: 52 real findings, e.g.
  ldap.c:269  ldap_url_parse — first deprecated in macOS 10.11
  multi-formadd.c:50  curl_formadd — since 7.56.0. Use curl_mime_init()

Refs docs/library-expansion-matrix.md row C7.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 00:47:38 -04:00