On Fri, Jul 31, 2020 at 04:43:01PM +0200, Oleg Nesterov wrote: > On 07/30, Luc Van Oostenryck wrote: > > > > On Thu, Jul 30, 2020 at 05:08:37PM +0200, Oleg Nesterov wrote: > > > But I do not know how to improve it without serious complications, and > > > > Are you thinking about calling evaluate_symbol_list() > > I meant, it is not simple to teach dissect() to handle this case correctly. > It understand the types, but for example it doesn't even try to distinguish > "int" and "float". OK, that's fine. It's just like using a super type like 'scalar' or 'basetype' or something. > And I would like to avoid evaluate_expression/etc. > > > or about > > something else? > > And something else. See the example above, this code is incomplete and in this > case evaluate can't help. Ideally dissect should also report the (possible) usage > of B.mem and C.mem. OK, I begin to understand. You want your own type evaluation with its own rules. evaluate_expression() and friends would indeed not help. But I'm afraid that, once _Generic() will be used more extensively in macros, it will create a lot of these 'possible usages' that would, in fact, be irrelevant to the code analyzed, possibly with an explosion of combinations. > > > (so far) I think it doesn't worth the effort. > > > > Yes, _Generic() clearly makes things a bit more complicated here. > > Same for __auto_type, > > Yes, but hopefully dissect needs much more simple changes to handle __auto_type. Yes, it should. Thanks for the reply. --Luc