Re: r302817 - PR22877: When constructing an array via a constructor with a default argument

2017-05-11 Thread Richard Smith via cfe-commits
Looks like we'd want something like this: Index: lib/CodeGen/TargetInfo.cpp === --- lib/CodeGen/TargetInfo.cpp (revision 302818) +++ lib/CodeGen/TargetInfo.cpp (working copy) @@ -7043,13 +7043,13 @@ ABIArgInfo::getExten

Re: r302817 - PR22877: When constructing an array via a constructor with a default argument

2017-05-11 Thread Richard Smith via cfe-commits
XFAIL'd for hexagon in r302825, filed PR33009 for the miscompile. Looks like it's only passing empty structs in C++ that is miscompiled, but that's still pretty serious. On 11 May 2017 at 14:30, Richard Smith wrote: > Wow, the Hexagon target is just horribly broken. Reduced testcase: > > struct

Re: r302817 - PR22877: When constructing an array via a constructor with a default argument

2017-05-11 Thread Richard Smith via cfe-commits
Wow, the Hexagon target is just horribly broken. Reduced testcase: struct A { A(); A(const A&); ~A(); }; void f(A a); void g() { f(A()); } This completely fails to pass an A object to f. Instrumented version: #include #define DUMP(ptr) printf("%s %p\\n", __PRETTY_FUNCTION__, ptr) struct A {

Re: r302817 - PR22877: When constructing an array via a constructor with a default argument

2017-05-11 Thread Krzysztof Parzyszek via cfe-commits
Hexagon is still broken. :( http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/7942 -Krzysztof On 5/11/2017 1:58 PM, Richard Smith via cfe-commits wrote: Author: rsmith Date: Thu May 11 13:58:24 2017 New Revision: 302817 URL: http://llvm.org/viewvc/llvm-project?rev=302817&view=rev Lo

r302817 - PR22877: When constructing an array via a constructor with a default argument

2017-05-11 Thread Richard Smith via cfe-commits
Author: rsmith Date: Thu May 11 13:58:24 2017 New Revision: 302817 URL: http://llvm.org/viewvc/llvm-project?rev=302817&view=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 t