On Tue, Nov 20, 2018 at 03:18:59AM +0000, yamada.masahiro@xxxxxxxxxxxxx wrote: > Hi Luc, > > > -----Original Message----- > > Most function designators are just a symbol (normal function call) > > or some small expression for calls via a function pointer. But they > > can be arbitrary complex when if done via a statement expression or > > via an inline function. These expressions should be expanded to insure > > that sub-expressions involving 'sizeof()' or some other 'operators' > > taking a type as argument (like __builtin_compatible_types_p()) are > > no more present. > > > > However, this is not currently enforced causing some failure at > > linearization with warnings like: > > warning: unknown expression (4 0) > > (corresponding to EXPR_TYPE). > > > > Fix this by calling expand_expression() on function designator > > while expanding a function call. > > > > References: > > https://lore.kernel.org/lkml/1542623503-3755-1-git-send-email-yamada.m > > asahiro@xxxxxxxxxxxxx/ > > Reported-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> > > Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> > > Thanks for your quick fix! > > Tested-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> Thanks for the testing. The patch is now available in sparse's main tree. -- Luc