Christopher Bazley - 16 hours ago

Please consider the attached candidate bug fix.

It checks by-value parameter completeness at function definitions before port-dependent allocation. Error 368 identifies the parameter position and function. Invalid definitions do not proceed to code generation; prototype-only declarations remain allowed.

The complete valdiag fixture set was compared on Z80, STM8 and three MCS51 configurations before and after applying the candidate patch.

Focused validation of this patch comprised 11 diagnostic cases on 7 configurations: incomplete structs/unions, later parameter positions, prototypes, complete types, pointers and adjusted array/function parameters. The 7 configurations are Z80, STM8, MCS51 default/large/stack-auto,
PDK14 and S08. All 77 checks passed.