This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFA][PATCH] Stack clash protection 06/08 - V4
On 09/25/2017 08:14 AM, Segher Boessenkool wrote:
> On Mon, Sep 25, 2017 at 07:41:18AM -0500, Segher Boessenkool wrote:
>> On Mon, Sep 25, 2017 at 05:52:27AM -0500, Segher Boessenkool wrote:
>>> Bootstrap+testsuite finished on BE, but I forgot to enable stack-clash
>>> protection by default, whoops. Will have results later today (also LE).
>>
>> Some new failures show up:
>>
>> +FAIL: c-c++-common/ubsan/vla-1.c -O0 execution test
>>
>> /home/segher/src/gcc/gcc/testsuite/c-c++-common/ubsan/vla-1.c:18:7: runtime error: variable length array bound evaluates to non-positive value -1
>> /home/segher/src/gcc/gcc/testsuite/c-c++-common/ubsan/vla-1.c:24:7: runtime error: variable length array bound evaluates to non-positive value -1
>> /home/segher/src/gcc/gcc/testsuite/c-c++-common/ubsan/vla-1.c:24:7: runtime error: variable length array bound evaluates to non-positive value -1
>> /home/segher/src/gcc/gcc/testsuite/c-c++-common/ubsan/vla-1.c:30:7: runtime error: variable length array bound evaluates to non-positive value -1
>> /home/segher/src/gcc/gcc/testsuite/c-c++-common/ubsan/vla-1.c:30:7: runtime error: variable length array bound evaluates to non-positive value -1
>> /home/segher/src/gcc/gcc/testsuite/c-c++-common/ubsan/vla-1.c:30:7: runtime error: variable length array bound evaluates to non-positive value -1
>> /home/segher/src/gcc/gcc/testsuite/c-c++-common/ubsan/vla-1.c:36:7: runtime error: variable length array bound evaluates to non-positive value -5
>>
>> (both gcc and g++, both -m32 and -m64).
>>
>> This is BE; LE is still running.
>
> LE show the same, but also
>
> === acats tests ===
> +FAIL: c52103x
> +FAIL: c52104x
> +FAIL: c52104y
> +FAIL: cb1010a
>
> These are
>
> ---- C52103X CHECK THAT IN ARRAY ASSIGNMENTS AND IN SLICE ASSIGNMENTS,
> THE LENGTHS MUST MATCH; ALSO CHECK WHETHER
> CONSTRAINT_ERROR OR STORAGE_ERROR ARE RAISED FOR LARGE
> ARRAYS.
> - C52103X NO CONSTRAINT_ERROR FOR TYPE WITH 'LENGTH = INTEGER'LAST +
> 3.
>
> raised STORAGE_ERROR : stack overflow or erroneous memory access
> FAIL: c52103x
This is expected. stack clash protection does not guarantee we can run
the signal handler upon stack overflow -- thus we can not guarantee we
get the constraint error.
>
> (twice)
>
> ---- C52104Y CHECK THAT IN ARRAY ASSIGNMENTS AND IN SLICE ASSIGNMENTS,
> THE LENGTHS MUST MATCH.
> - C52104Y NO CONSTRAINT_ERROR FOR NON-NULL ARRAY SUBTYPE WHEN ONE
> DIMENSION HAS INTEGER'LAST + 3 COMPONENTS.
>
> raised STORAGE_ERROR : stack overflow or erroneous memory access
> FAIL: c52104y
Likewise.
>
> and,
>
> ---- CB1010A CHECK THAT STORAGE_ERROR IS RAISED WHEN STORAGE ALLOCATED
> TO A TASK IS EXCEEDED.
> - CB1010A CHECK TASKS THAT DO NOT HANDLE STORAGE_ERROR PRIOR TO
> RENDEZVOUS.
> FAIL: cb1010a
Likewise. We can't guarantee we can run the signal handler and thus we
can't inform the Ada runtime about the overflow.
Jeff