[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