Re: [C++ PATCH] Implement P1073R3: Immediate functions (PR c++/88335, take 3)

2019-11-01 Thread Jason Merrill
On 11/1/19 5:19 PM, Jakub Jelinek wrote: On Fri, Nov 01, 2019 at 09:56:44PM +0100, Jakub Jelinek wrote: Ah, used 8.x to test it. There have been r265787 and r269775 changes in between. Though auto d = [] () mutable __attribute__((noreturn)) constexpr {}; auto e = [] () mutable [[noreturn]

Re: [C++ PATCH] Implement P1073R3: Immediate functions (PR c++/88335, take 3)

2019-11-01 Thread Jakub Jelinek
On Fri, Nov 01, 2019 at 09:56:44PM +0100, Jakub Jelinek wrote: > Ah, used 8.x to test it. There have been r265787 and r269775 changes in > between. > Though > auto d = [] () mutable __attribute__((noreturn)) constexpr {}; > auto e = [] () mutable [[noreturn]] constexpr {}; > is still accepted.

Re: [C++ PATCH] Implement P1073R3: Immediate functions (PR c++/88335, take 3)

2019-11-01 Thread Jakub Jelinek
On Fri, Nov 01, 2019 at 04:42:45PM -0400, Jason Merrill wrote: > It isn't accepted for me: > > wa3.C: In function 'void foo()': > wa3.C:4:29: warning: attribute ignored [-Wattributes] > 4 | auto a = [] () [[noreturn]] constexpr {}; > | ^ > wa3.C:4:29: note:

Re: [C++ PATCH] Implement P1073R3: Immediate functions (PR c++/88335, take 3)

2019-11-01 Thread Jason Merrill
On 11/1/19 3:57 PM, Jakub Jelinek wrote: On Fri, Nov 01, 2019 at 03:42:58PM -0400, Jason Merrill wrote: + for (size_t n = cp_parser_skip_balanced_tokens (parser, 1); ; n++) + { + size_t after = cp_parser_skip_attributes_opt (parser, n); + if (after > n)

Re: [C++ PATCH] Implement P1073R3: Immediate functions (PR c++/88335, take 3)

2019-11-01 Thread Jakub Jelinek
On Fri, Nov 01, 2019 at 03:42:58PM -0400, Jason Merrill wrote: > > + for (size_t n = cp_parser_skip_balanced_tokens (parser, 1); ; n++) > > + { > > + size_t after = cp_parser_skip_attributes_opt (parser, n); > > + if (after > n) > > + { > > + n = afte

Re: [C++ PATCH] Implement P1073R3: Immediate functions (PR c++/88335, take 3)

2019-11-01 Thread Jason Merrill
On 10/31/19 1:21 PM, Jakub Jelinek wrote: On Wed, Oct 30, 2019 at 05:06:00PM -0400, Jason Merrill wrote: build_cplus_new does the magic of replacing a dummy argument, e.g. if (obj_arg && is_dummy_object (obj_arg)) { call = build_cplus_new (DECL_CONTEXT (f

[C++ PATCH] Implement P1073R3: Immediate functions (PR c++/88335, take 3)

2019-10-31 Thread Jakub Jelinek
On Wed, Oct 30, 2019 at 05:06:00PM -0400, Jason Merrill wrote: > build_cplus_new does the magic of replacing a dummy argument, e.g. > > > if (obj_arg && is_dummy_object (obj_arg)) > > { > > call = build_cplus_new (DECL_CONTEXT (fndecl), call, > > complain); > >