2026-10-07 Philipp Klaus Krause * src/SDCCast.c, src/SDCCicode.c, src/SDCCicode.h, src/SDCCopt.c, src/SDCCsymt.c, src/SDCCsymt.h, support/valdiag/tests/bug-3953.c, support/valdiag/tests/bug-4006.c: Check referenced qualifiers after expression decay on assignments and returns (bug #4006). Avoid repeating incompatible-type diagnostics. Remove the late iCode qualifier checker and unused restrict-loss flag. Patch by Christopher Bazley. 2026-10-07 Philipp Klaus Krause * src/SDCCast.c, src/SDCCicode.c, src/SDCCsymt.c, src/SDCCsymt.h, support/regression/tests/bug-4005.c, support/valdiag/tests/_Optional-draft-2026-04-17.c: Centralise expression array decay and remove _Optional from its referenced element type (bug #4005), patch by Christopher Bazley. 2026-10-07 Gabriele Gorla * sdas/as8051/i51mch.c, sdas/asf8/f8adr.c, sdas/asgb/gb.h, sdas/asxxsrc/asexpr.c, sdas/asxxsrc/asmain.c, sdas/asxxsrc/asout.c, sdas/asxxsrc/asxxxx.h, sdas/asz80/z80mch.c: Update the "A_" area constants to match upstream asxxxx. 2026-10-07 Philipp Klaus Krause * support/regression/tests/bug-4002.c, support/valdiag/tests/_Optional-draft-2026-04-17.c, support/valdiag/tests/bug-4002.c: Tests for bug #4002 (which was fixed along with #4003 earlier today), patch by Christopher Bazley. 2026-10-07 Philipp Klaus Krause * src/SDCC.y, src/SDCCast.c, src/SDCCast.h, src/SDCCcse.c, src/SDCCicode.c, src/SDCCicode.h, src/SDCCopt.c: Record non-null checks for arithmetic and dereferences in diagnostic-only iCode (bug #4003). Replace operand semantic- dereference markers and deferred deletion from the preliminary fix; Diagnose after value analysis and remove checks before loop optimisation, without an extra CSE pass that can introduce spills, patch by Christopher Bazley. * support/regression/tests/bug-4003.c, support/valdiag/tests/bug-4003.c: Test folding, guards, discarded operations and single evaluation, patch by Christopher Bazley. 2026-10-07 Philipp Klaus Krause * src/SDCCast.c, src/SDCCsymt.c, src/SDCCsymt.h: Diagnose incompatible implicit pointer conversions (bug #3952). Compare types without object storage metadata, check function return types and restore parameter comparison in compareTypeExact, patch by Christopher Bazley. Print pointer type details only when warning 244 is emitted. * support/valdiag/tests/bug-3952.c, support/valdiag/tests/function-type-parameters.c, support/regression/tests/function-type-parameters.c: Add diagnostic and runtime coverage, patch by Christopher Bazley. * support/valdiag/tests/bug-4004.c, support/valdiag/tests/pointers.c: Update diagnostic expectations, patch by Christopher Bazley. * support/regression/tests/p99-conformance.c: Suppress expected warning 244 without changing the tested code, patch by Christopher Bazley. 2026-10-07 Philipp Klaus Krause * src/SDCCsymt.c, support/valdiag/tests/bug-4094.c, support/regression/tests/bug-2102.c: Fix bug #4094, based on patch by Christopher Bazley. 2026-10-07 Philipp Klaus Krause * src/SDCCval.c, support/regression/tests/bug-4102.c: Fix bug #4102: fold unsigned int products in host unsigned long to avoid signed integer promotion. Assert that its range holds the full target product needed by the overflow diagnostic, patch by Christopher Bazley. 2026-10-07 Philipp Klaus Krause * src/SDCCsymt.c: Insert multi-element declarator chains before the terminal specifier in addDecl, fixing function typedefs with pointer returns (#4104), patch by Christopher Bazley. * support/regression/tests/bug-4104.c, support/valdiag/tests/bug-4104.c: Test reentrant function typedefs, indirect calls, null assignment, pointer depth, access qualifiers and address-space qualification, patch by Christopher Bazley. 2026-10-06 Philipp Klaus Krause * src/SDCCast.c: Compare integral AST literals without conversion to double; test the full literal before simplifying unsigned comparisons, patch by Christopher Bazley. * src/SDCCval.c: Share folding for all six comparison operators after arithmetic conversion, preserving wide integer values and signedness (#4113), patch by Christopher Bazley. * src/SDCCicode.c: