Skip to content

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

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

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

Conversation

@copybara-service

@copybara-service copybara-service Bot commented Aug 9, 2026

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.

@copybara-service
copybara-service Bot force-pushed the test_961780215 branch 3 times, most recently from d519742 to b67ee0a Compare August 9, 2026 19:09
…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