2026-10-18 Christopher Bazley * src/SDCCval.c: Detect overflow while accumulating each digit of an integer literal (bug #4127). Produce one range warning per literal. Do not alter SDCC's previous interpretation of the accumulated value. Use the target's unsigned long long representation and check that it matches LONGLONGSIZE. * support/regression/tests/bug-4127.c: Test that valid boundary values are parsed correctly by using arithmetic to make the tests independent of . * support/valdiag/tests/bug-4127.c: Test that overflowing literal values are diagnosed with each supported radix and with digit separators. Test that valid boundary values and literals with a huge number of leading zeros are not incorrectly diagnosed. 2026-10-18 Christopher Bazley * src/SDCCast.c: Require a scalar first operand of a conditional expression allowing array and function conversion (bug #4084). Diagnose structure, union and void conditions; preserve valid arithmetic, pointer and nullptr_t conditions. * support/valdiag/tests/bug-4084.c: Add test cases for invalid usage of structure, union and void types. Add test cases for valid usage of int, float, pointer, array and function types; also a test case for valid usage of nullptr_t. 2026-10-18 Christopher Bazley * src/SDCCast.c, src/SDCCsymt.c: Use consistent function-pointer kinds for type names and converted _Generic controlling expressions, so equivalent types compare correctly (bug #4107). * support/valdiag/tests/bug-4107.c: Test rejection of duplicate compatible function-pointer associations in generic selections. * support/regression/tests/bug-4107.c: Test equivalent function-pointer spellings, function-designator conversion and pointers to function pointers. Test banked function pointers and distinct object address spaces on MCS51. 2026-10-18 Christopher Bazley * src/SDCC.y: Append leading pointers after the complete direct abstract declarator, preserving array dimensions in unnamed parameters and type names (bug #4105). * support/regression/tests/bug-4105.c: Add regression tests for equivalent declarations, array parameter adjustment, qualifiers, pointer depth and array sizes. Test indexing, pointer arithmetic and calls through unnamed parameter declarations. 2026-10-17 Philipp Klaus Krause * support/regression/tests/bug-4123-3.c: Further tests for z80 peephole optimizer rules, towards fixing bug #4123. 2026-10-17 Christopher Bazley * src/SDCC.y, * src/SDCCsymt.h, * src/SDCCerr.c, * src/SDCCerr.h: Track member lists under construction, including C23 redefinitions. Diagnose a nested definition before it can complete the enclosing type, and retain a separate type for error recovery (bug #4116). * support/valdiag/tests/bug-4116.c: Test that an error is reported for union and struct redefinitions nested within themselves, including indirectly and when a struct tag is reused for a nested union or vice versa. Test that no error is reported for a struct or union definition that contains a pointer to itself, and other valid cases. 2026-10-17 Christopher Bazley * src/SDCCast.c (constExprTree): Read the constexpr flag from the symbol's type specifier, including for pointer objects (bug #4151). * support/regression/tests/bug-4151.c: Test compound literals with pointer initialisers supplied by parameters and local variables. 2026-10-17 Philipp Klaus Krause * support/scripts/sdcc.nsi: Include HuC6280 port in Windows installer, fix bug #4114. * support/regression/tests/bug-4123-2.c: Further tests for z80 peephole optimizer rules, towards fixing bug #4123. 2026-10-17 Maarten Brock * support/valdiag/tests/bug-4139.c: fixed for pdk13 & pdk15 * support/regression/tests/bug2783061.c: fixed warning 357 instead of ignoring it, enabled for all targets 2026-10-17 Christopher Bazley * src/SDCCgenconstprop.cc: Do not add a fall-through edge after calls to _Noreturn functions in the value-analysis graph. Avoid spurious _Optional dereference diagnostics after a null guard (bug #4146). * support/valdiag/tests/bug-4146.c: Test guarded calls and