mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-09-30 07:31:59 -04:00
b885acf676
Derived the correct lines myself AND had an independent agent derive them separately — warranted after two stacked line-number errors earlier in the session. Both derivations agreed exactly. - expr.c:5535 -> 4577 (guard 4570-4576), case INDIRECT_REF: @4540, expand_expr @4026. 5535 is a gcc-2.8.1 line; in our 2.7.2 it is MIN_EXPR/MAX_EXPR optab code. - expr.c:5891 -> 4888, case COMPONENT_REF: @4748. THIS SECOND CITE WAS ALSO WRONG and had not been noticed: 5891 lands in case COND_EXPR: (jumpifnot/cleanups). Two precisions from the independent derivation, folded in rather than dropped: - the INDIRECT_REF guard is a 4-WAY OR, not a single test (SAVE_EXPR-wrapping-PLUS, aggregate-typed deref, and ADDR_EXPR-of-aggregate also grant /s), so "only when top-level PLUS_EXPR" was too strong. The cast-defeats-/s rule is now bounded to a scalar-typed deref through a plain pointer — which is the case the idiom is actually about. - a SECOND MEM_IN_STRUCT_P (op0) = 1 at 4873 is conditional (BLKmode bitfield, returns early at 4876) and is NOT the one meant — flagged so it is not cited by mistake. Old cites struck not deleted (H5); the top-of-file provenance note corrected (it named 4904, which is the OFFSET_REF grant — a real third site but not this idiom's). Tool limitation recorded: sweep_citations.py cannot tell a live cite from a struck-through historical one. Docs-only: no src/ or config/ touched; R22 not re-run and not claimed.