Re: r302750 - PR22877: When constructing an array via a constructor with a default argument
I will look at this. Thanks Galina On Fri, May 12, 2017 at 2:00 PM, Richard Smithwrote: > On 12 May 2017 at 13:24, Renato Golin wrote: > >> On 12 May 2017 at 20:46, Diana Picus wrote: >> > On 11 May 2017 at 21:14, Richard Smith wrote: >> >> Thanks for the revert, fixed up and recommitted in r302817. >> >> >> >> Any idea why not a single buildbot sent me any email about this? :( (A >> >> couple of them were red at the previous change too, but some of them >> were >> >> not (eg. clang-cmake-armv7-a15). >> > >> > Hm, I have no idea... @Renato, thoughts? >> >> This seems to be the one: >> http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15/builds/6961 >> >> First red in a long line of greens. >> >> I have received breakage emails this week, so if you didn't get the >> email it could be some outage in the bots (Galina?) or some filters? >> >> I really have no better idea. :( > > > Looks like I've been receiving the expected build failure mails from > llvm.greendra...@gmail.com, but have only received one build failure > email from llvm.buildmas...@lab.llvm.org since January 12th (on March > 9th, for http://lab.llvm.org:8011/builders/clang-ppc64le-linux-ln > t/builds/3791). > > Could this be a DMARC / DKIM issue? > ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: r302750 - PR22877: When constructing an array via a constructor with a default argument
On 12 May 2017 at 13:24, Renato Golinwrote: > On 12 May 2017 at 20:46, Diana Picus wrote: > > On 11 May 2017 at 21:14, Richard Smith wrote: > >> Thanks for the revert, fixed up and recommitted in r302817. > >> > >> Any idea why not a single buildbot sent me any email about this? :( (A > >> couple of them were red at the previous change too, but some of them > were > >> not (eg. clang-cmake-armv7-a15). > > > > Hm, I have no idea... @Renato, thoughts? > > This seems to be the one: > http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15/builds/6961 > > First red in a long line of greens. > > I have received breakage emails this week, so if you didn't get the > email it could be some outage in the bots (Galina?) or some filters? > > I really have no better idea. :( Looks like I've been receiving the expected build failure mails from llvm.greendra...@gmail.com, but have only received one build failure email from llvm.buildmas...@lab.llvm.org since January 12th (on March 9th, for http://lab.llvm.org:8011/builders/clang-ppc64le-linux-lnt/builds/3791). Could this be a DMARC / DKIM issue? ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: r302750 - PR22877: When constructing an array via a constructor with a default argument
On 12 May 2017 at 20:46, Diana Picuswrote: > On 11 May 2017 at 21:14, Richard Smith wrote: >> Thanks for the revert, fixed up and recommitted in r302817. >> >> Any idea why not a single buildbot sent me any email about this? :( (A >> couple of them were red at the previous change too, but some of them were >> not (eg. clang-cmake-armv7-a15). > > Hm, I have no idea... @Renato, thoughts? This seems to be the one: http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15/builds/6961 First red in a long line of greens. I have received breakage emails this week, so if you didn't get the email it could be some outage in the bots (Galina?) or some filters? I really have no better idea. :( --renato ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: r302750 - PR22877: When constructing an array via a constructor with a default argument
On 11 May 2017 at 21:14, Richard Smithwrote: > Thanks for the revert, fixed up and recommitted in r302817. > > Any idea why not a single buildbot sent me any email about this? :( (A > couple of them were red at the previous change too, but some of them were > not (eg. clang-cmake-armv7-a15). Hm, I have no idea... @Renato, thoughts? > > On 11 May 2017 at 01:28, Diana Picus wrote: >> >> Hexagon too: >> http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/7916 >> >> On 11 May 2017 at 10:27, Diana Picus wrote: >> > Hi Richard, >> > >> > I reverted this and its fixup in r302776 since some of the ARM bots >> > were still broken: >> > http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15/builds/6969 >> > http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-a15/builds/6959 >> > http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/6717 >> > >> > http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-a15-full-sh/builds/1518 >> > >> > Sorry, >> > Diana >> > >> > On 11 May 2017 at 02:17, Richard Smith via cfe-commits >> > wrote: >> >> Author: rsmith >> >> Date: Wed May 10 19:17:17 2017 >> >> New Revision: 302750 >> >> >> >> URL: http://llvm.org/viewvc/llvm-project?rev=302750=rev >> >> Log: >> >> PR22877: When constructing an array via a constructor with a default >> >> argument >> >> in list-initialization, run cleanups for the default argument after >> >> each >> >> iteration of the initialization loop. >> >> >> >> We previously only ran the destructor for any temporary once, at the >> >> end of the >> >> complete loop, rather than once per iteration! >> >> >> >> Added: >> >> cfe/trunk/test/CodeGenCXX/array-default-argument.cpp >> >> Modified: >> >> cfe/trunk/lib/CodeGen/CGExprAgg.cpp >> >> >> >> Modified: cfe/trunk/lib/CodeGen/CGExprAgg.cpp >> >> URL: >> >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprAgg.cpp?rev=302750=302749=302750=diff >> >> >> >> == >> >> --- cfe/trunk/lib/CodeGen/CGExprAgg.cpp (original) >> >> +++ cfe/trunk/lib/CodeGen/CGExprAgg.cpp Wed May 10 19:17:17 2017 >> >> @@ -512,12 +512,20 @@ void AggExprEmitter::EmitArrayInit(Addre >> >> currentElement->addIncoming(element, entryBB); >> >> >> >> // Emit the actual filler expression. >> >> -LValue elementLV = >> >> - CGF.MakeAddrLValue(Address(currentElement, elementAlign), >> >> elementType); >> >> -if (filler) >> >> - EmitInitializationToLValue(filler, elementLV); >> >> -else >> >> - EmitNullInitializationToLValue(elementLV); >> >> +{ >> >> + // C++1z [class.temporary]p5: >> >> + // when a default constructor is called to initialize an >> >> element of >> >> + // an array with no corresponding initializer [...] the >> >> destruction of >> >> + // every temporary created in a default argument is sequenced >> >> before >> >> + // the construction of the next array element, if any >> >> + CodeGenFunction::RunCleanupsScope CleanupsScope(CGF); >> >> + LValue elementLV = >> >> +CGF.MakeAddrLValue(Address(currentElement, elementAlign), >> >> elementType); >> >> + if (filler) >> >> +EmitInitializationToLValue(filler, elementLV); >> >> + else >> >> +EmitNullInitializationToLValue(elementLV); >> >> +} >> >> >> >> // Move on to the next element. >> >> llvm::Value *nextElement = >> >> >> >> Added: cfe/trunk/test/CodeGenCXX/array-default-argument.cpp >> >> URL: >> >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/array-default-argument.cpp?rev=302750=auto >> >> >> >> == >> >> --- cfe/trunk/test/CodeGenCXX/array-default-argument.cpp (added) >> >> +++ cfe/trunk/test/CodeGenCXX/array-default-argument.cpp Wed May 10 >> >> 19:17:17 2017 >> >> @@ -0,0 +1,36 @@ >> >> +// RUN: %clang_cc1 -emit-llvm -o - %s -triple %itanium_abi_triple | >> >> FileCheck %s >> >> +// RUN: %clang_cc1 -emit-llvm -o - %s -triple %itanium_abi_triple >> >> -fexceptions -fcxx-exceptions | FileCheck %s --check-prefix=CHECK >> >> --check-prefix=CHECK-EH >> >> + >> >> +struct A { >> >> + A(); >> >> + ~A(); >> >> +}; >> >> + >> >> +struct B { >> >> + B(A = A()); >> >> + ~B(); >> >> +}; >> >> + >> >> +void f(); >> >> +// CHECK-LABEL: define void @_Z1gv() >> >> +void g() { >> >> + // CHECK: br label %[[LOOP:.*]] >> >> + >> >> + // [[LOOP]]: >> >> + // CHECK: {{call|invoke}} void @_ZN1AC1Ev([[TEMPORARY:.*]]) >> >> + // CHECK-EH: unwind label %[[PARTIAL_ARRAY_LPAD:.*]] >> >> + // CHECK: {{call|invoke}} void @_ZN1BC1E1A({{.*}}, [[TEMPORARY]]) >> >> + // CHECK-EH: unwind label %[[A_AND_PARTIAL_ARRAY_LPAD:.*]] >> >> + // CHECK: {{call|invoke}} void @_ZN1AD1Ev([[TEMPORARY]]) >> >> + // CHECK-EH: unwind label %[[PARTIAL_ARRAY_LPAD]] >> >> + //
Re: r302750 - PR22877: When constructing an array via a constructor with a default argument
Thanks for the revert, fixed up and recommitted in r302817. Any idea why not a single buildbot sent me any email about this? :( (A couple of them were red at the previous change too, but some of them were not (eg. clang-cmake-armv7-a15). On 11 May 2017 at 01:28, Diana Picuswrote: > Hexagon too: > http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/7916 > > On 11 May 2017 at 10:27, Diana Picus wrote: > > Hi Richard, > > > > I reverted this and its fixup in r302776 since some of the ARM bots > > were still broken: > > http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15/builds/6969 > > http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-a15/builds/6959 > > http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/6717 > > http://lab.llvm.org:8011/builders/clang-cmake-thumbv7- > a15-full-sh/builds/1518 > > > > Sorry, > > Diana > > > > On 11 May 2017 at 02:17, Richard Smith via cfe-commits > > wrote: > >> Author: rsmith > >> Date: Wed May 10 19:17:17 2017 > >> New Revision: 302750 > >> > >> URL: http://llvm.org/viewvc/llvm-project?rev=302750=rev > >> Log: > >> PR22877: When constructing an array via a constructor with a default > argument > >> in list-initialization, run cleanups for the default argument after each > >> iteration of the initialization loop. > >> > >> We previously only ran the destructor for any temporary once, at the > end of the > >> complete loop, rather than once per iteration! > >> > >> Added: > >> cfe/trunk/test/CodeGenCXX/array-default-argument.cpp > >> Modified: > >> cfe/trunk/lib/CodeGen/CGExprAgg.cpp > >> > >> Modified: cfe/trunk/lib/CodeGen/CGExprAgg.cpp > >> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/ > CGExprAgg.cpp?rev=302750=302749=302750=diff > >> > == > >> --- cfe/trunk/lib/CodeGen/CGExprAgg.cpp (original) > >> +++ cfe/trunk/lib/CodeGen/CGExprAgg.cpp Wed May 10 19:17:17 2017 > >> @@ -512,12 +512,20 @@ void AggExprEmitter::EmitArrayInit(Addre > >> currentElement->addIncoming(element, entryBB); > >> > >> // Emit the actual filler expression. > >> -LValue elementLV = > >> - CGF.MakeAddrLValue(Address(currentElement, elementAlign), > elementType); > >> -if (filler) > >> - EmitInitializationToLValue(filler, elementLV); > >> -else > >> - EmitNullInitializationToLValue(elementLV); > >> +{ > >> + // C++1z [class.temporary]p5: > >> + // when a default constructor is called to initialize an > element of > >> + // an array with no corresponding initializer [...] the > destruction of > >> + // every temporary created in a default argument is sequenced > before > >> + // the construction of the next array element, if any > >> + CodeGenFunction::RunCleanupsScope CleanupsScope(CGF); > >> + LValue elementLV = > >> +CGF.MakeAddrLValue(Address(currentElement, elementAlign), > elementType); > >> + if (filler) > >> +EmitInitializationToLValue(filler, elementLV); > >> + else > >> +EmitNullInitializationToLValue(elementLV); > >> +} > >> > >> // Move on to the next element. > >> llvm::Value *nextElement = > >> > >> Added: cfe/trunk/test/CodeGenCXX/array-default-argument.cpp > >> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ > CodeGenCXX/array-default-argument.cpp?rev=302750=auto > >> > == > >> --- cfe/trunk/test/CodeGenCXX/array-default-argument.cpp (added) > >> +++ cfe/trunk/test/CodeGenCXX/array-default-argument.cpp Wed May 10 > 19:17:17 2017 > >> @@ -0,0 +1,36 @@ > >> +// RUN: %clang_cc1 -emit-llvm -o - %s -triple %itanium_abi_triple | > FileCheck %s > >> +// RUN: %clang_cc1 -emit-llvm -o - %s -triple %itanium_abi_triple > -fexceptions -fcxx-exceptions | FileCheck %s --check-prefix=CHECK > --check-prefix=CHECK-EH > >> + > >> +struct A { > >> + A(); > >> + ~A(); > >> +}; > >> + > >> +struct B { > >> + B(A = A()); > >> + ~B(); > >> +}; > >> + > >> +void f(); > >> +// CHECK-LABEL: define void @_Z1gv() > >> +void g() { > >> + // CHECK: br label %[[LOOP:.*]] > >> + > >> + // [[LOOP]]: > >> + // CHECK: {{call|invoke}} void @_ZN1AC1Ev([[TEMPORARY:.*]]) > >> + // CHECK-EH: unwind label %[[PARTIAL_ARRAY_LPAD:.*]] > >> + // CHECK: {{call|invoke}} void @_ZN1BC1E1A({{.*}}, [[TEMPORARY]]) > >> + // CHECK-EH: unwind label %[[A_AND_PARTIAL_ARRAY_LPAD:.*]] > >> + // CHECK: {{call|invoke}} void @_ZN1AD1Ev([[TEMPORARY]]) > >> + // CHECK-EH: unwind label %[[PARTIAL_ARRAY_LPAD]] > >> + // CHECK: getelementptr {{.*}}, i{{[0-9]*}} 1 > >> + // CHECK: icmp eq > >> + // CHECK: br i1 {{.*}} label %[[LOOP]] > >> + B b[5]; > >> + > >> + // CHECK: {{call|invoke}} void @_Z1fv() > >> + f(); > >> + > >> + // CHECK-NOT: @_ZN1AD1Ev( > >> + // CHECK: {{call|invoke}} void @_ZN1BD1Ev( >
Re: r302750 - PR22877: When constructing an array via a constructor with a default argument
Hexagon too: http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/7916 On 11 May 2017 at 10:27, Diana Picuswrote: > Hi Richard, > > I reverted this and its fixup in r302776 since some of the ARM bots > were still broken: > http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15/builds/6969 > http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-a15/builds/6959 > http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/6717 > http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-a15-full-sh/builds/1518 > > Sorry, > Diana > > On 11 May 2017 at 02:17, Richard Smith via cfe-commits > wrote: >> Author: rsmith >> Date: Wed May 10 19:17:17 2017 >> New Revision: 302750 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=302750=rev >> Log: >> PR22877: When constructing an array via a constructor with a default argument >> in list-initialization, run cleanups for the default argument after each >> iteration of the initialization loop. >> >> We previously only ran the destructor for any temporary once, at the end of >> the >> complete loop, rather than once per iteration! >> >> Added: >> cfe/trunk/test/CodeGenCXX/array-default-argument.cpp >> Modified: >> cfe/trunk/lib/CodeGen/CGExprAgg.cpp >> >> Modified: cfe/trunk/lib/CodeGen/CGExprAgg.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprAgg.cpp?rev=302750=302749=302750=diff >> == >> --- cfe/trunk/lib/CodeGen/CGExprAgg.cpp (original) >> +++ cfe/trunk/lib/CodeGen/CGExprAgg.cpp Wed May 10 19:17:17 2017 >> @@ -512,12 +512,20 @@ void AggExprEmitter::EmitArrayInit(Addre >> currentElement->addIncoming(element, entryBB); >> >> // Emit the actual filler expression. >> -LValue elementLV = >> - CGF.MakeAddrLValue(Address(currentElement, elementAlign), >> elementType); >> -if (filler) >> - EmitInitializationToLValue(filler, elementLV); >> -else >> - EmitNullInitializationToLValue(elementLV); >> +{ >> + // C++1z [class.temporary]p5: >> + // when a default constructor is called to initialize an element of >> + // an array with no corresponding initializer [...] the destruction >> of >> + // every temporary created in a default argument is sequenced before >> + // the construction of the next array element, if any >> + CodeGenFunction::RunCleanupsScope CleanupsScope(CGF); >> + LValue elementLV = >> +CGF.MakeAddrLValue(Address(currentElement, elementAlign), >> elementType); >> + if (filler) >> +EmitInitializationToLValue(filler, elementLV); >> + else >> +EmitNullInitializationToLValue(elementLV); >> +} >> >> // Move on to the next element. >> llvm::Value *nextElement = >> >> Added: cfe/trunk/test/CodeGenCXX/array-default-argument.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/array-default-argument.cpp?rev=302750=auto >> == >> --- cfe/trunk/test/CodeGenCXX/array-default-argument.cpp (added) >> +++ cfe/trunk/test/CodeGenCXX/array-default-argument.cpp Wed May 10 19:17:17 >> 2017 >> @@ -0,0 +1,36 @@ >> +// RUN: %clang_cc1 -emit-llvm -o - %s -triple %itanium_abi_triple | >> FileCheck %s >> +// RUN: %clang_cc1 -emit-llvm -o - %s -triple %itanium_abi_triple >> -fexceptions -fcxx-exceptions | FileCheck %s --check-prefix=CHECK >> --check-prefix=CHECK-EH >> + >> +struct A { >> + A(); >> + ~A(); >> +}; >> + >> +struct B { >> + B(A = A()); >> + ~B(); >> +}; >> + >> +void f(); >> +// CHECK-LABEL: define void @_Z1gv() >> +void g() { >> + // CHECK: br label %[[LOOP:.*]] >> + >> + // [[LOOP]]: >> + // CHECK: {{call|invoke}} void @_ZN1AC1Ev([[TEMPORARY:.*]]) >> + // CHECK-EH: unwind label %[[PARTIAL_ARRAY_LPAD:.*]] >> + // CHECK: {{call|invoke}} void @_ZN1BC1E1A({{.*}}, [[TEMPORARY]]) >> + // CHECK-EH: unwind label %[[A_AND_PARTIAL_ARRAY_LPAD:.*]] >> + // CHECK: {{call|invoke}} void @_ZN1AD1Ev([[TEMPORARY]]) >> + // CHECK-EH: unwind label %[[PARTIAL_ARRAY_LPAD]] >> + // CHECK: getelementptr {{.*}}, i{{[0-9]*}} 1 >> + // CHECK: icmp eq >> + // CHECK: br i1 {{.*}} label %[[LOOP]] >> + B b[5]; >> + >> + // CHECK: {{call|invoke}} void @_Z1fv() >> + f(); >> + >> + // CHECK-NOT: @_ZN1AD1Ev( >> + // CHECK: {{call|invoke}} void @_ZN1BD1Ev( >> +} >> >> >> ___ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Re: r302750 - PR22877: When constructing an array via a constructor with a default argument
Hi Richard, I reverted this and its fixup in r302776 since some of the ARM bots were still broken: http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15/builds/6969 http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-a15/builds/6959 http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/6717 http://lab.llvm.org:8011/builders/clang-cmake-thumbv7-a15-full-sh/builds/1518 Sorry, Diana On 11 May 2017 at 02:17, Richard Smith via cfe-commitswrote: > Author: rsmith > Date: Wed May 10 19:17:17 2017 > New Revision: 302750 > > URL: http://llvm.org/viewvc/llvm-project?rev=302750=rev > Log: > PR22877: When constructing an array via a constructor with a default argument > in list-initialization, run cleanups for the default argument after each > iteration of the initialization loop. > > We previously only ran the destructor for any temporary once, at the end of > the > complete loop, rather than once per iteration! > > Added: > cfe/trunk/test/CodeGenCXX/array-default-argument.cpp > Modified: > cfe/trunk/lib/CodeGen/CGExprAgg.cpp > > Modified: cfe/trunk/lib/CodeGen/CGExprAgg.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprAgg.cpp?rev=302750=302749=302750=diff > == > --- cfe/trunk/lib/CodeGen/CGExprAgg.cpp (original) > +++ cfe/trunk/lib/CodeGen/CGExprAgg.cpp Wed May 10 19:17:17 2017 > @@ -512,12 +512,20 @@ void AggExprEmitter::EmitArrayInit(Addre > currentElement->addIncoming(element, entryBB); > > // Emit the actual filler expression. > -LValue elementLV = > - CGF.MakeAddrLValue(Address(currentElement, elementAlign), elementType); > -if (filler) > - EmitInitializationToLValue(filler, elementLV); > -else > - EmitNullInitializationToLValue(elementLV); > +{ > + // C++1z [class.temporary]p5: > + // when a default constructor is called to initialize an element of > + // an array with no corresponding initializer [...] the destruction > of > + // every temporary created in a default argument is sequenced before > + // the construction of the next array element, if any > + CodeGenFunction::RunCleanupsScope CleanupsScope(CGF); > + LValue elementLV = > +CGF.MakeAddrLValue(Address(currentElement, elementAlign), > elementType); > + if (filler) > +EmitInitializationToLValue(filler, elementLV); > + else > +EmitNullInitializationToLValue(elementLV); > +} > > // Move on to the next element. > llvm::Value *nextElement = > > Added: cfe/trunk/test/CodeGenCXX/array-default-argument.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/array-default-argument.cpp?rev=302750=auto > == > --- cfe/trunk/test/CodeGenCXX/array-default-argument.cpp (added) > +++ cfe/trunk/test/CodeGenCXX/array-default-argument.cpp Wed May 10 19:17:17 > 2017 > @@ -0,0 +1,36 @@ > +// RUN: %clang_cc1 -emit-llvm -o - %s -triple %itanium_abi_triple | > FileCheck %s > +// RUN: %clang_cc1 -emit-llvm -o - %s -triple %itanium_abi_triple > -fexceptions -fcxx-exceptions | FileCheck %s --check-prefix=CHECK > --check-prefix=CHECK-EH > + > +struct A { > + A(); > + ~A(); > +}; > + > +struct B { > + B(A = A()); > + ~B(); > +}; > + > +void f(); > +// CHECK-LABEL: define void @_Z1gv() > +void g() { > + // CHECK: br label %[[LOOP:.*]] > + > + // [[LOOP]]: > + // CHECK: {{call|invoke}} void @_ZN1AC1Ev([[TEMPORARY:.*]]) > + // CHECK-EH: unwind label %[[PARTIAL_ARRAY_LPAD:.*]] > + // CHECK: {{call|invoke}} void @_ZN1BC1E1A({{.*}}, [[TEMPORARY]]) > + // CHECK-EH: unwind label %[[A_AND_PARTIAL_ARRAY_LPAD:.*]] > + // CHECK: {{call|invoke}} void @_ZN1AD1Ev([[TEMPORARY]]) > + // CHECK-EH: unwind label %[[PARTIAL_ARRAY_LPAD]] > + // CHECK: getelementptr {{.*}}, i{{[0-9]*}} 1 > + // CHECK: icmp eq > + // CHECK: br i1 {{.*}} label %[[LOOP]] > + B b[5]; > + > + // CHECK: {{call|invoke}} void @_Z1fv() > + f(); > + > + // CHECK-NOT: @_ZN1AD1Ev( > + // CHECK: {{call|invoke}} void @_ZN1BD1Ev( > +} > > > ___ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits