Re: [C++ Patch] PR 79790 ("[C++17] ICE class template argument deduction")

2017-08-04 Thread Paolo Carlini
Hi, On 04/08/2017 20:05, Tim Song wrote: These messages are only emitted when elided == true, which, if I'm reading the code correctly, is only the case when you are in copy-initialization context (and have skipped at least one explicit guide). Ah! Thanks! Paolo.

Re: [C++ Patch] PR 79790 ("[C++17] ICE class template argument deduction")

2017-08-04 Thread Tim Song
On Fri, Aug 4, 2017 at 1:32 PM, Paolo Carlini wrote: > About the exact wording, I'm a little puzzled, because, besides the > "implicit" nit, the "copy-inizialization" already occurs in two other places > in that function, in the preceding: > > if (elided && !cands) >

Re: [C++ Patch] PR 79790 ("[C++17] ICE class template argument deduction")

2017-08-04 Thread Paolo Carlini
Hi, On 04/08/2017 19:00, Jason Merrill wrote: On 07/14/2017 01:32 PM, Paolo Carlini wrote: + error ("cannot deduce template arguments for copy-initialization" + " of %qT, as it has no viable implicit deduction guides", type); Why "copy-initialization"? We do deduction for

Re: [C++ Patch] PR 79790 ("[C++17] ICE class template argument deduction")

2017-08-04 Thread Jason Merrill
On 07/14/2017 01:32 PM, Paolo Carlini wrote: + error ("cannot deduce template arguments for copy-initialization" +" of %qT, as it has no viable implicit deduction guides", type); Why "copy-initialization"? We do deduction for direct-initialization, as well. I would also

[C++ Patch Ping] Re: [C++ Patch] PR 79790 ("[C++17] ICE class template argument deduction")

2017-08-04 Thread Paolo Carlini
Hi, On 14/07/2017 19:51, Nathan Sidwell wrote: On 07/14/2017 01:32 PM, Paolo Carlini wrote: While working on the bug I also noticed that we can simplify a bit the code generating the implicit deduction guides: if I'm not mistaken, when we pass types as first argument of build_deduction_guide

Re: [C++ Patch] PR 79790 ("[C++17] ICE class template argument deduction")

2017-07-14 Thread Nathan Sidwell
On 07/14/2017 01:32 PM, Paolo Carlini wrote: While working on the bug I also noticed that we can simplify a bit the code generating the implicit deduction guides: if I'm not mistaken, when we pass types as first argument of build_deduction_guide - for implicit guides, that is - the deduction

[C++ Patch] PR 79790 ("[C++17] ICE class template argument deduction")

2017-07-14 Thread Paolo Carlini
Hi, in this C++17 ICE on invalid we crash when, in do_class_deduction, build_new_function_call is called with a null first argument. What is happening is pretty simple to analyze: for the broken snippet, there are no cands and elided is false, because the issue isn't that candidates are