[PATCH] Add clobbers for callee copied argument temporaries (PR sanitizer/81715, PR testsuite/83882)

John David Anglin dave.anglin@bell.net
Thu Jan 18 19:53:00 GMT 2018


On 2018-01-18 12:51 PM, Jakub Jelinek wrote:
> On Thu, Jan 18, 2018 at 08:10:50AM -0500, John David Anglin wrote:
>> On 2018-01-17 3:07 PM, Jakub Jelinek wrote:
>>> PR83882 complains that PR81715 testcase fails on callee copies parameter
>>> targets.  The following patch ought to fix that, but I have only
>>> bootstrapped/regtested it on x86_64-linux and i686-linux + on the testcase
>>> with hppa.
>>>
>>> John, do you think you could test this on hppa without the callee copies
>>> default change?
>> On hppa2.0w-hp-hpux11.11, pr81715.C now passes.
>>
>> However, there are some new fails in the gcc and g++ suites:
> That is really weird, at least in the cross-compiler on throw-1.C I don't
> see with -mno-caller-copies the new code triggering at all.
> Tried both hppa-linux and hppa-hpux crosses.
> Furthermore, throw-1.C has:
> /* { dg-skip-if "Stack alignment is too small" { hppa*-*-hpux* } } */
Sorry, these fails are my fault.  I tweaked the skip to just hppa*64*.  
Nominally, 32-bit
hpux has 64 byte stack alignment but maybe alignment in signal frames is 
insufficient.
> so I wonder how it comes you see them run on hpux at all.
> I don't have hpux or hppa-linux fenv.h, so can't check pr52451.c.
Will have to investigate.  I see they predate your patch.
> What kind of error would be on pr83487-*?
Digging into log, I see:

spawn /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/ 
-fno-diagnostics-show-caret -fdiagnostics-color=never 
-DSKIP_DECIMAL_FLOAT -c -o c_compat_y_tst.o 
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/compat//pr83487-1_y.c
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/compat//pr83487-1_y.c:27:1: 
warning: alignment (16) for a exceeds maximum alignment for global 
common data.  Using 8
output is:
/test/gnu/gcc/gcc/gcc/testsuite/gcc.dg/compat//pr83487-1_y.c:27:1: 
warning: alignment (16) for a exceeds maximum alignment for global 
common data.  Using 8

FAIL: gcc.dg/compat/pr83487-1 c_compat_y_tst.o compile

The typical fix is to add "-fno-common" but I'm not sure where it would 
go in this case.

So, I don't see any regressions from you change.

Thanks,
Dave

-- 
John David Anglin  dave.anglin@bell.net



More information about the Gcc-patches mailing list