This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][testsuite] Add dg-require-stack-check


On 11 July 2017 at 16:09, Christophe Lyon <christophe.lyon@linaro.org> wrote:
> On 10 July 2017 at 10:01, Christophe Lyon <christophe.lyon@linaro.org> wrote:
>> Hi,
>>
>>
>> On 6 July 2017 at 06:50, Jeff Law <law@redhat.com> wrote:
>>> On 07/04/2017 02:50 AM, Christophe Lyon wrote:
>>>> On 3 July 2017 at 17:30, Jeff Law <law@redhat.com> wrote:
>>>>> On 07/03/2017 09:00 AM, Christophe Lyon wrote:
>>>>>> Hi,
>>>>>>
>>>>>> This is a follow-up to
>>>>>> https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01791.html
>>>>>>
>>>>>> This patch adds dg-require-stack-check and updates the tests that use
>>>>>> dg-options "-fstack-check" to avoid failures on configurations that to
>>>>>> not support it.
>>>>>>
>>>>>> I merely copied what we currently do to check if visibility flags are
>>>>>> supported, and cross-tested on aarch64 and arm targets with the
>>>>>> results I expected.
>>>>>>
>>>>>> This means that my testing does not cover the changes I propose for
>>>>>> i386 and gnat.
>>>>>>
>>>>>> Is it OK nonetheless?
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Christophe
>>>>>>
>>>>>>
>>>>>> stack-check-et.chlog.txt
>>>>>>
>>>>>>
>>>>>> 2017-07-03  Christophe Lyon  <christophe.lyon@linaro.org>
>>>>>>
>>>>>>       * lib/target-supports-dg.exp (dg-require-stack-check): New.
>>>>>>       * lib/target-supports.exp (check_stack_check_available): New.
>>>>>>       * g++.dg/other/i386-9.C: Add dg-require-stack-check.
>>>>>>       * gcc.c-torture/compile/stack-check-1.c: Likewise.
>>>>>>       * gcc.dg/graphite/run-id-pr47653.c: Likewise.
>>>>>>       * gcc.dg/pr47443.c: Likewise.
>>>>>>       * gcc.dg/pr48134.c: Likewise.
>>>>>>       * gcc.dg/pr70017.c: Likewise.
>>>>>>       * gcc.target/aarch64/stack-checking.c: Likewise.
>>>>>>       * gcc.target/arm/stack-checking.c: Likewise.
>>>>>>       * gcc.target/i386/pr48723.c: Likewise.
>>>>>>       * gcc.target/i386/pr55672.c: Likewise.
>>>>>>       * gcc.target/i386/pr67265-2.c: Likewise.
>>>>>>       * gcc.target/i386/pr67265.c: Likewise.
>>>>>>       * gnat.dg/opt49.adb: Likewise.
>>>>>>       * gnat.dg/stack_check1.adb: Likewise.
>>>>>>       * gnat.dg/stack_check2.adb: Likewise.
>>>>>>       * gnat.dg/stack_check3.adb: Likewise.
>>>>> ACK once you address Rainer's comments.  I've got further stack-check
>>>>> tests in the queue which I'll update once your change goes in.
>>>>>
>>>>> jeff
>>>> Here is an updated version, which adds documentation for dg-require-stack-check.
>>>>
>>>> I also ran make-check on and x86_64 with ada enabled and checked the logs:
>>>> the updated i386/* and gnat.dg* tests all pass, and are preceded by
>>>> the compilation
>>>> of the "stack_check" sample.
>>>>
>>>> OK?
>>>>
>>>> Thanks,
>>>>
>>>> Christophe
>>>>
>>>>
>>>> stack-check-et.chlog.txt
>>>>
>>>>
>>>> 2017-07-04  Christophe Lyon  <christophe.lyon@linaro.org>
>>>>
>>>>       gcc/
>>>>       * doc/sourcebuild.texi (Test Directives, Variants of
>>>>       dg-require-support): Add documentation for dg-require-stack-check.
>>>>
>>>>       gcc/testsuite/
>>>>       * lib/target-supports-dg.exp (dg-require-stack-check): New.
>>>>       * lib/target-supports.exp (check_stack_check_available): New.
>>>>       * g++.dg/other/i386-9.C: Add dg-require-stack-check.
>>>>       * gcc.c-torture/compile/stack-check-1.c: Likewise.
>>>>       * gcc.dg/graphite/run-id-pr47653.c: Likewise.
>>>>       * gcc.dg/pr47443.c: Likewise.
>>>>       * gcc.dg/pr48134.c: Likewise.
>>>>       * gcc.dg/pr70017.c: Likewise.
>>>>       * gcc.target/aarch64/stack-checking.c: Likewise.
>>>>       * gcc.target/arm/stack-checking.c: Likewise.
>>>>       * gcc.target/i386/pr48723.c: Likewise.
>>>>       * gcc.target/i386/pr55672.c: Likewise.
>>>>       * gcc.target/i386/pr67265-2.c: Likewise.
>>>>       * gcc.target/i386/pr67265.c: Likewise.
>>>>       * gnat.dg/opt49.adb: Likewise.
>>>>       * gnat.dg/stack_check1.adb: Likewise.
>>>>       * gnat.dg/stack_check2.adb: Likewise.
>>>>       * gnat.dg/stack_check3.adb: Likewise.
>>> OK for the trunk.  Thanks for doing this!
>>>
>>
>> I've committed this as r250013.
>>
>> Since then, I've noticed that pr48134 randomly fails.
>>
>> According to gcc.log, this seems related the order wrt pr47443.
>> pr48134 uses -fstack-check=specific, while pr47443 uses -fstack-check=generic.
>>
>> When pr47443 appears before pr48134 in gcc.log, the latter fails,
>> otherwise it is unsupported.
>>
>> Looking at gcc.log, it seems that dg-require-stack-check is not always called.
>> Is there some caching in dejagnu I'm not aware of, that would ignore
>> the value of the
>> parameter (assuming that dg-require-stack-check "specific" and
>> dg-require-stack-check "generic" return the same value?)
>>
>> Am I missing anything obvious?
>>
>
> It turns out I was... check_no_compiler_messages actually caches the
> results using the testcase name, so using "stack_check" was insufficient.
>
> The attached patch uses "stack_check_$stack_kind" instead, to make it
> unique per fstack-check option.
>

I went ahead and committed it as r250149.

Christophe

> OK?
>
> Thanks,
>
> Christophe
>
>> Thanks,
>>
>> Christophe
>>
>>
>>> Jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]