https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119979
Bug ID: 119979
Summary: [16 Regression] Recent change breaks multiple ports
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: law at gcc dot gnu.org
Target Milestone: ---
This change:
commit a670ebde3995481225ec62b29686ec07a21e5c10 (HEAD)
Author: H.J. Lu <[email protected]>
Date: Thu Nov 21 07:54:35 2024 +0800
Drop targetm.promote_prototypes from C, C++ and Ada frontends
Remove the targetm.calls.promote_prototypes call from C, C++ and Ada
frontends.
Is causing regressions. While some appear to just be scan-asm failures, the
iq2000 and mcore ports are both failing execution tests in their testsuites.
I haven't done a deep dive but it looks like we've dropped a zero extension on
mcore-elf at -O2 with this test:
void bar (void);
__attribute__((noinline, noclone))
unsigned char t101_1mul (signed char x, unsigned char y)
{
unsigned char r;
if (__builtin_mul_overflow (x, y, &r))
bar ();
return r;
}
It's possible this is a target issue. HJ, can you take a deeper look?