[PING PATCH coroutines] Do not strip cleanup_point when promote temporaries out of current stmt
Iain Sandoe
iain@sandoe.co.uk
Wed Mar 11 09:07:47 GMT 2020
Bin.Cheng <amker.cheng@gmail.com> wrote:
> On Thu, Mar 5, 2020 at 10:18 PM Iain Sandoe <iain@sandoe.co.uk> wrote:
>> With current trunk + Bin’s two approved patches.
>>
>> I see no change in the testcase (lambda-09-capture-object.C) before / after
>> the patch
>> (it fails for me at -O0 only - in both cases).
>
> I tried exactly what you did, however, the result is different.
I am a bit concerned that we get different results - yesterday I retested this on:
Linux : x86_64-linux (cfarm gcc122)
Darwin (x86_64-darwin16),
with the same results on both platforms.
1) I applied the two testcases (note I have renamed lambda-09-capture-object.C => lambda-11-capture-object.C so that the test numbers are sequential). However, I have not changed the test in any other way.
Native configuration is x86_64-pc-linux-gnu
=== g++ tests ===
Schedule of variations:
unix/-m32
unix/-m64
Running target unix/-m32
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/iains/gcc-master/src-patched/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/coroutines.exp ...
FAIL: g++.dg/coroutines/co-await-syntax-10.C (internal compiler error)
FAIL: g++.dg/coroutines/co-await-syntax-10.C (test for excess errors)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (test for excess errors)
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/torture/coro-torture.exp ...
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (test for excess errors)
Running target unix/-m64
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/iains/gcc-master/src-patched/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/coroutines.exp ...
FAIL: g++.dg/coroutines/co-await-syntax-10.C (internal compiler error)
FAIL: g++.dg/coroutines/co-await-syntax-10.C (test for excess errors)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (test for excess errors)
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/torture/coro-torture.exp ...
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (test for excess errors)
^^ so, this shows that both tests fail (co-await-syntax-10.C is expected)
2) I apply Bin’s patch (Pickup more CO_AWAIT_EXPR expanding cases) (which is approved)
Native configuration is x86_64-pc-linux-gnu
=== g++ tests ===
Schedule of variations:
unix/-m32
unix/-m64
Running target unix/-m32
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/iains/gcc-master/src-patched/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/coroutines.exp ...
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (test for excess errors)
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/torture/coro-torture.exp ...
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (test for excess errors)
Running target unix/-m64
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/iains/gcc-master/src-patched/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/coroutines.exp ...
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (test for excess errors)
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/torture/coro-torture.exp ...
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (test for excess errors)
^^^ this shows that co-await-syntax-10.C is now OK (which is why I was happy to have this patch applied).
3) I apply JunMa’s patch (Do not strip cleanup_point when promote temporaries out of current stmt)
Native configuration is x86_64-pc-linux-gnu
=== g++ tests ===
Schedule of variations:
unix/-m32
unix/-m64
Running target unix/-m32
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/iains/gcc-master/src-patched/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/coroutines.exp ...
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (test for excess errors)
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/torture/coro-torture.exp ...
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (test for excess errors)
Running target unix/-m64
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/iains/gcc-master/src-patched/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/coroutines.exp ...
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C (test for excess errors)
Running /home/iains/gcc-master/src-patched/gcc/testsuite/g++.dg/coroutines/torture/coro-torture.exp ...
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (internal compiler error)
FAIL: g++.dg/coroutines/torture/lambda-11-capture-object.C -O0 (test for excess errors)
^^^ and there is no change to the result.
====
If it helps, I could push a branch to users/iains/ on the FSF git server with this sequence.
thanks for your patience,
Iain
More information about the Gcc-patches
mailing list