https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91710
Bug ID: 91710 Summary: unexpected ABI change note Product: gcc Version: 9.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: jbeulich at suse dot com Target Milestone: --- Presumably as a result of the fix for bug 88469 on aarch64 there's now a diagnostic apparently on any passing by value of a compound type using a bitfield: struct s { unsigned int i:4; }; unsigned int test1(struct s s) { return s.i; } unsigned int test2(unsigned x, struct s s) { return x - s.i; } unsigned int test3(unsigned x, unsigned y, struct s s) { return x - y - s.i; } triggers three note diagnostics. Comparing the generated code there is (as expected) no change at all from 8.x (same also when looking at the caller side code). I wonder whether this isn't simply because aarch64_function_arg_boundary() guards its inform() invocation only by a condition not depending on the function inputs. For reference, the issue was originally noticed with p2m_mem_access_check() in https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/arch/arm/mem_access.c;h=3e3620294cbcee685f13c25a03f343f7d4422847;hb=refs/heads/staging with struct npfec being declared in https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=xen/include/xen/mm.h;h=8d0ddfb60cf4cd08bf907c1f0155049661e3370d;hb=refs/heads/staging