This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to easily identify that a FUNCTION_DECL is a lambda

On July 16, 2018 4:30:42 PM GMT+02:00, Nathan Sidwell <> wrote:
>On 07/16/2018 03:23 AM, Martin Liška wrote:
>> Hi.
>> For purpose of --coverage I would like to distinguish lambda
>> among DECL_ARTIFICIAL functions. Currently, cp-tree.h provides macro:
>> /* Test if FUNCTION_DECL is a lambda function.  */
>> That's FE-specific function that probably should not be called from
>> middle-end. Any idea how to distinguish lambdas?
>You're going to need a language hook.  Lambda fns are just regular 
>member fns outside the front-end.  Make the hook more than 
>'lambda_fn_p', so it can extend to other exciting C++ features. 
>something like:
>enum synthetic_fn_kind {
>   sfk_none,
>   sfk_cxx_lambda,
>synthetic_fn_kind (*categorize_artificial_fn) (tree decl);
>We'll have to expose the union of FE's such sythetic fns to the middle 
>end, but at least not how the FE distinguishes them.
>Hm, but isn't this info lost if we're in LTO at this point?  Not sure
>we'll need to propagate this through the LTO streaming.  I guess that's
>a later bug to handle though.

Just use a spare bit in function_decl, then we can simply stream it. 



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]