Re: r366694 - [NFC] Relaxed regression tests for PR42665
Great! Thanks! From: Hans Wennborg Sent: 23 July 2019 15:58 To: Anastasia Stulova Cc: Marco Antognini ; Clang Commits ; nd Subject: Re: r366694 - [NFC] Relaxed regression tests for PR42665 Merged them both in r366814. Thanks, Hans On Tue, Jul 23, 2019 at 7:20 AM Anastasia Stulova wrote: > > > + cfe-commits > > > From: Anastasia Stulova > Sent: 23 July 2019 15:16 > To: Hans Wennborg > Cc: Marco Antognini > Subject: Re: r366694 - [NFC] Relaxed regression tests for PR42665 > > > @Hans, would it be possible to merge this commit along with r366670 to the > release 9.0? > > > FY, I have also added this to the blocker bug: > https://bugs.llvm.org/show_bug.cgi?id=41727 > > Thanks! > Anastasia > > From: cfe-commits on behalf of Marco > Antognini via cfe-commits > Sent: 22 July 2019 15:47 > To: cfe-commits@lists.llvm.org > Subject: r366694 - [NFC] Relaxed regression tests for PR42665 > > Author: mantognini > Date: Mon Jul 22 07:47:36 2019 > New Revision: 366694 > > URL: http://llvm.org/viewvc/llvm-project?rev=366694=rev > Log: > [NFC] Relaxed regression tests for PR42665 > > Following up on the buildbot failures, this commits relaxes some tests: > instead of checking for specific IR output, it now ensures that the > underlying issue (the crash), and only that, doesn't happen. > > Modified: > cfe/trunk/test/CodeGenCXX/PR42665.cpp > > Modified: cfe/trunk/test/CodeGenCXX/PR42665.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/PR42665.cpp?rev=366694=366693=366694=diff > == > --- cfe/trunk/test/CodeGenCXX/PR42665.cpp (original) > +++ cfe/trunk/test/CodeGenCXX/PR42665.cpp Mon Jul 22 07:47:36 2019 > @@ -1,7 +1,8 @@ > -// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -std=c++17 -O0 %s > -o - | FileCheck %s > -// RUN: %clang_cc1 -triple %ms_abi_triple -emit-llvm -std=c++17 -O0 %s -o - > | FileCheck %s > +// RUN: %clang_cc1 -std=c++17 -O0 %s -emit-llvm -o /dev/null -verify -triple > %itanium_abi_triple > +// RUN: %clang_cc1 -std=c++17 -O0 %s -emit-llvm -o /dev/null -verify -triple > %ms_abi_triple > > // Minimal reproducer for PR42665. > +// expected-no-diagnostics > > struct Foo { >Foo() = default; > @@ -31,31 +32,3 @@ void foobar() { >d(f); // Invoke virtual destructor of Foo through d. > } // p's destructor is invoked. > > -// Regexes are used to handle both kind of mangling. > -// > -// CHECK-LABEL: define linkonce_odr{{( dso_local)?}} void > @{{.*deleter.*Foo.*}}(%struct.Foo* dereferenceable({{[0-9]+}}) > -// CHECK-SAME: [[T:%.*]]) > -// CHECK: [[T_ADDR:%.*]] = alloca %struct.Foo* > -// CHECK: store %struct.Foo* [[T]], %struct.Foo** [[T_ADDR]] > -// CHECK: [[R0:%.*]] = load %struct.Foo*, %struct.Foo** [[T_ADDR]] > -// CHECK: [[R1:%.*]] = bitcast %struct.Foo* [[R0]] to > [[TYPE:.*struct\.Foo.*]]*** > -// CHECK: [[VTABLE:%.*]] = load [[TYPE]]**, [[TYPE]]*** [[R1]] > -// CHECK: [[VFUN:%.*]] = getelementptr inbounds [[TYPE]]*, [[TYPE]]** > [[VTABLE]], i64 0 > -// CHECK: [[DTOR:%.*]] = load [[TYPE]]*, [[TYPE]]** [[VFUN]] > -// CHECK: call {{(void|i8\*)}} [[DTOR]](%struct.Foo* [[R0]] > -// > -// CHECK-LABEL: define{{( dso_local)?}} void @{{.*foobar.*}}() > -// CHECK: [[P:%.*]] = alloca %struct.Pair > -// CHECK: [[F:%.*]] = alloca %struct.Foo* > -// CHECK: [[D:%.*]] = alloca [[TYPE:void \(%struct.Foo\*\)]]** > -// CHECK: call void @{{.*make_pair.*}}(%struct.Pair* sret [[P]]) > -// CHECK: [[FIRST:%.*]] = getelementptr inbounds %struct.Pair, %struct.Pair* > [[P]], i32 0, i32 0 > -// CHECK: store %struct.Foo* [[FIRST]], %struct.Foo** [[F]] > -// CHECK: [[SECOND:%.*]] = getelementptr inbounds %struct.Pair, > %struct.Pair* [[P]], i32 0, i32 1 > -// CHECK: store void (%struct.Foo*)** [[SECOND]], [[TYPE]]*** [[D]] > -// CHECK: [[R0:%.*]] = load [[TYPE]]**, [[TYPE]]*** [[D]] > -// CHECK: [[R1:%.*]] = load [[TYPE]]*, [[TYPE]]** [[R0]] > -// CHECK: [[R2:%.*]] = load %struct.Foo*, %struct.Foo** [[F]] > -// CHECK: call void [[R1]](%struct.Foo* dereferenceable({{[0-9]+}}) [[R2]]) > -// CHECK: call void @{{.*Pair.*Foo.*}}(%struct.Pair* [[P]]) > - > > > ___ > cfe-commits mailing list > cfe-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: r366694 - [NFC] Relaxed regression tests for PR42665
Merged them both in r366814. Thanks, Hans On Tue, Jul 23, 2019 at 7:20 AM Anastasia Stulova wrote: > > > + cfe-commits > > > From: Anastasia Stulova > Sent: 23 July 2019 15:16 > To: Hans Wennborg > Cc: Marco Antognini > Subject: Re: r366694 - [NFC] Relaxed regression tests for PR42665 > > > @Hans, would it be possible to merge this commit along with r366670 to the > release 9.0? > > > FY, I have also added this to the blocker bug: > https://bugs.llvm.org/show_bug.cgi?id=41727 > > Thanks! > Anastasia > > From: cfe-commits on behalf of Marco > Antognini via cfe-commits > Sent: 22 July 2019 15:47 > To: cfe-commits@lists.llvm.org > Subject: r366694 - [NFC] Relaxed regression tests for PR42665 > > Author: mantognini > Date: Mon Jul 22 07:47:36 2019 > New Revision: 366694 > > URL: http://llvm.org/viewvc/llvm-project?rev=366694=rev > Log: > [NFC] Relaxed regression tests for PR42665 > > Following up on the buildbot failures, this commits relaxes some tests: > instead of checking for specific IR output, it now ensures that the > underlying issue (the crash), and only that, doesn't happen. > > Modified: > cfe/trunk/test/CodeGenCXX/PR42665.cpp > > Modified: cfe/trunk/test/CodeGenCXX/PR42665.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/PR42665.cpp?rev=366694=366693=366694=diff > == > --- cfe/trunk/test/CodeGenCXX/PR42665.cpp (original) > +++ cfe/trunk/test/CodeGenCXX/PR42665.cpp Mon Jul 22 07:47:36 2019 > @@ -1,7 +1,8 @@ > -// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -std=c++17 -O0 %s > -o - | FileCheck %s > -// RUN: %clang_cc1 -triple %ms_abi_triple -emit-llvm -std=c++17 -O0 %s -o - > | FileCheck %s > +// RUN: %clang_cc1 -std=c++17 -O0 %s -emit-llvm -o /dev/null -verify -triple > %itanium_abi_triple > +// RUN: %clang_cc1 -std=c++17 -O0 %s -emit-llvm -o /dev/null -verify -triple > %ms_abi_triple > > // Minimal reproducer for PR42665. > +// expected-no-diagnostics > > struct Foo { >Foo() = default; > @@ -31,31 +32,3 @@ void foobar() { >d(f); // Invoke virtual destructor of Foo through d. > } // p's destructor is invoked. > > -// Regexes are used to handle both kind of mangling. > -// > -// CHECK-LABEL: define linkonce_odr{{( dso_local)?}} void > @{{.*deleter.*Foo.*}}(%struct.Foo* dereferenceable({{[0-9]+}}) > -// CHECK-SAME: [[T:%.*]]) > -// CHECK: [[T_ADDR:%.*]] = alloca %struct.Foo* > -// CHECK: store %struct.Foo* [[T]], %struct.Foo** [[T_ADDR]] > -// CHECK: [[R0:%.*]] = load %struct.Foo*, %struct.Foo** [[T_ADDR]] > -// CHECK: [[R1:%.*]] = bitcast %struct.Foo* [[R0]] to > [[TYPE:.*struct\.Foo.*]]*** > -// CHECK: [[VTABLE:%.*]] = load [[TYPE]]**, [[TYPE]]*** [[R1]] > -// CHECK: [[VFUN:%.*]] = getelementptr inbounds [[TYPE]]*, [[TYPE]]** > [[VTABLE]], i64 0 > -// CHECK: [[DTOR:%.*]] = load [[TYPE]]*, [[TYPE]]** [[VFUN]] > -// CHECK: call {{(void|i8\*)}} [[DTOR]](%struct.Foo* [[R0]] > -// > -// CHECK-LABEL: define{{( dso_local)?}} void @{{.*foobar.*}}() > -// CHECK: [[P:%.*]] = alloca %struct.Pair > -// CHECK: [[F:%.*]] = alloca %struct.Foo* > -// CHECK: [[D:%.*]] = alloca [[TYPE:void \(%struct.Foo\*\)]]** > -// CHECK: call void @{{.*make_pair.*}}(%struct.Pair* sret [[P]]) > -// CHECK: [[FIRST:%.*]] = getelementptr inbounds %struct.Pair, %struct.Pair* > [[P]], i32 0, i32 0 > -// CHECK: store %struct.Foo* [[FIRST]], %struct.Foo** [[F]] > -// CHECK: [[SECOND:%.*]] = getelementptr inbounds %struct.Pair, > %struct.Pair* [[P]], i32 0, i32 1 > -// CHECK: store void (%struct.Foo*)** [[SECOND]], [[TYPE]]*** [[D]] > -// CHECK: [[R0:%.*]] = load [[TYPE]]**, [[TYPE]]*** [[D]] > -// CHECK: [[R1:%.*]] = load [[TYPE]]*, [[TYPE]]** [[R0]] > -// CHECK: [[R2:%.*]] = load %struct.Foo*, %struct.Foo** [[F]] > -// CHECK: call void [[R1]](%struct.Foo* dereferenceable({{[0-9]+}}) [[R2]]) > -// CHECK: call void @{{.*Pair.*Foo.*}}(%struct.Pair* [[P]]) > - > > > ___ > cfe-commits mailing list > cfe-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: r366694 - [NFC] Relaxed regression tests for PR42665
+ cfe-commits From: Anastasia Stulova Sent: 23 July 2019 15:16 To: Hans Wennborg Cc: Marco Antognini Subject: Re: r366694 - [NFC] Relaxed regression tests for PR42665 @Hans, would it be possible to merge this commit along with r366670 to the release 9.0? FY, I have also added this to the blocker bug: https://bugs.llvm.org/show_bug.cgi?id=41727 Thanks! Anastasia From: cfe-commits on behalf of Marco Antognini via cfe-commits Sent: 22 July 2019 15:47 To: cfe-commits@lists.llvm.org Subject: r366694 - [NFC] Relaxed regression tests for PR42665 Author: mantognini Date: Mon Jul 22 07:47:36 2019 New Revision: 366694 URL: http://llvm.org/viewvc/llvm-project?rev=366694=rev Log: [NFC] Relaxed regression tests for PR42665 Following up on the buildbot failures, this commits relaxes some tests: instead of checking for specific IR output, it now ensures that the underlying issue (the crash), and only that, doesn't happen. Modified: cfe/trunk/test/CodeGenCXX/PR42665.cpp Modified: cfe/trunk/test/CodeGenCXX/PR42665.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/PR42665.cpp?rev=366694=366693=366694=diff == --- cfe/trunk/test/CodeGenCXX/PR42665.cpp (original) +++ cfe/trunk/test/CodeGenCXX/PR42665.cpp Mon Jul 22 07:47:36 2019 @@ -1,7 +1,8 @@ -// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -std=c++17 -O0 %s -o - | FileCheck %s -// RUN: %clang_cc1 -triple %ms_abi_triple -emit-llvm -std=c++17 -O0 %s -o - | FileCheck %s +// RUN: %clang_cc1 -std=c++17 -O0 %s -emit-llvm -o /dev/null -verify -triple %itanium_abi_triple +// RUN: %clang_cc1 -std=c++17 -O0 %s -emit-llvm -o /dev/null -verify -triple %ms_abi_triple // Minimal reproducer for PR42665. +// expected-no-diagnostics struct Foo { Foo() = default; @@ -31,31 +32,3 @@ void foobar() { d(f); // Invoke virtual destructor of Foo through d. } // p's destructor is invoked. -// Regexes are used to handle both kind of mangling. -// -// CHECK-LABEL: define linkonce_odr{{( dso_local)?}} void @{{.*deleter.*Foo.*}}(%struct.Foo* dereferenceable({{[0-9]+}}) -// CHECK-SAME: [[T:%.*]]) -// CHECK: [[T_ADDR:%.*]] = alloca %struct.Foo* -// CHECK: store %struct.Foo* [[T]], %struct.Foo** [[T_ADDR]] -// CHECK: [[R0:%.*]] = load %struct.Foo*, %struct.Foo** [[T_ADDR]] -// CHECK: [[R1:%.*]] = bitcast %struct.Foo* [[R0]] to [[TYPE:.*struct\.Foo.*]]*** -// CHECK: [[VTABLE:%.*]] = load [[TYPE]]**, [[TYPE]]*** [[R1]] -// CHECK: [[VFUN:%.*]] = getelementptr inbounds [[TYPE]]*, [[TYPE]]** [[VTABLE]], i64 0 -// CHECK: [[DTOR:%.*]] = load [[TYPE]]*, [[TYPE]]** [[VFUN]] -// CHECK: call {{(void|i8\*)}} [[DTOR]](%struct.Foo* [[R0]] -// -// CHECK-LABEL: define{{( dso_local)?}} void @{{.*foobar.*}}() -// CHECK: [[P:%.*]] = alloca %struct.Pair -// CHECK: [[F:%.*]] = alloca %struct.Foo* -// CHECK: [[D:%.*]] = alloca [[TYPE:void \(%struct.Foo\*\)]]** -// CHECK: call void @{{.*make_pair.*}}(%struct.Pair* sret [[P]]) -// CHECK: [[FIRST:%.*]] = getelementptr inbounds %struct.Pair, %struct.Pair* [[P]], i32 0, i32 0 -// CHECK: store %struct.Foo* [[FIRST]], %struct.Foo** [[F]] -// CHECK: [[SECOND:%.*]] = getelementptr inbounds %struct.Pair, %struct.Pair* [[P]], i32 0, i32 1 -// CHECK: store void (%struct.Foo*)** [[SECOND]], [[TYPE]]*** [[D]] -// CHECK: [[R0:%.*]] = load [[TYPE]]**, [[TYPE]]*** [[D]] -// CHECK: [[R1:%.*]] = load [[TYPE]]*, [[TYPE]]** [[R0]] -// CHECK: [[R2:%.*]] = load %struct.Foo*, %struct.Foo** [[F]] -// CHECK: call void [[R1]](%struct.Foo* dereferenceable({{[0-9]+}}) [[R2]]) -// CHECK: call void @{{.*Pair.*Foo.*}}(%struct.Pair* [[P]]) - ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits