On Wed, Feb 8, 2017 at 4:12 AM, Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> wrote: > > I'm very well aware of this bug/problem, it creates all sort of complications > but I vaguely understood it was a design choice. To be 100%, you're talking > the fact that each declaration create a new symbol only related by their > identifier chain, right? Yes. I don't see a way not creating the symbol for each declaration. However, we can make a better job at migrating the bits between each declaration. > > Yes and diagnose any compatibility. > I'll give it a try but I won't be able to do that before the weekend. No problem. Just in case you miss it. I attach a one line patch in my previous email. I attach it here again. Chris
--- sparse.chrisl.orig/parse.c +++ sparse.chrisl/parse.c @@ -2879,8 +2879,10 @@ struct token *external_declaration(struc } } check_declaration(decl); - if (decl->same_symbol) + if (decl->same_symbol) { decl->definition = decl->same_symbol->definition; + decl->op = decl->same_symbol->op; + } if (!match_op(token, ',')) break;