Skip to content

[PROTOTYPE] Add analyzer-only ABSL_ANALYZER_ASSUME primitive and consume it in the nullability checker - #1159

Draft
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_961780215
Draft

[PROTOTYPE] Add analyzer-only ABSL_ANALYZER_ASSUME primitive and consume it in the nullability checker#1159
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_961780215

Conversation

@copybara-service

Copy link
Copy Markdown

[PROTOTYPE] Add analyzer-only ABSL_ANALYZER_ASSUME primitive and consume it in the nullability checker

Introduces a single, analyzer-only primitive ABSL_ANALYZER_ASSUME(cond) in
Abseil that feeds a fact to Clang dataflow-based analyses and expands to nothing
in production builds. The nullability checker recognizes it once and calls
Env.assume(...), so error-checking macros can teach analyses a fact (e.g.
non-nullness after CHECK_NE(p, nullptr)) by emitting the shared primitive
instead of each carrying its own analyzer workaround. Wires up Abseil
CHECK_OP/QCHECK_OP to emit it under analysis (production expansion
unchanged). Prototype for discussion.

…ume it in the nullability checker

Introduces a single, analyzer-only primitive `ABSL_ANALYZER_ASSUME(cond)` in
Abseil that feeds a fact to Clang dataflow-based analyses and expands to nothing
in production builds. The nullability checker recognizes it once and calls
`Env.assume(...)`, so error-checking macros can teach analyses a fact (e.g.
non-nullness after `CHECK_NE(p, nullptr)`) by emitting the shared primitive
instead of each carrying its own analyzer workaround. Wires up Abseil
`CHECK_OP`/`QCHECK_OP` to emit it under analysis (production expansion
unchanged). Prototype for discussion.

PiperOrigin-RevId: 961780215
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant