On Mon, Feb 23, 2026 at 2:58 PM Josh Poimboeuf <[email protected]> wrote: > > On Thu, Feb 19, 2026 at 02:22:38PM -0800, Song Liu wrote: > > +++ b/tools/objtool/klp-diff.c > > @@ -519,6 +519,37 @@ static int correlate_symbols(struct elfs *e) > > } > > } > > > > + /* Correlate original locals with patched globals */ > > + for_each_sym(e->orig, sym1) { > > + if (sym1->twin || dont_correlate(sym1) || !is_local_sym(sym1)) > > + continue; > > + sym2 = find_global_symbol_by_name(e->patched, sym1->name); > > + if (!sym2 && find_global_symbol_by_demangled_name(e->patched, > > sym1, &sym2)) > > + return -1; > > + if (sym2 && !sym2->twin) { > > + sym1->twin = sym2; > > + sym2->twin = sym1; > > + WARN("correlate LOCAL %s (original) to GLOBAL %s > > (patched)", > > + sym1->name, sym2->name); > > + } > > + } > > Try to follow the existing newline conventions which break the code into > "paragraphs", like: > > for_each_sym(e->orig, sym1) { > if (sym1->twin || dont_correlate(sym1) || !is_local_sym(sym1)) > continue; > > sym2 = find_global_symbol_by_name(e->patched, sym1->name); > if (!sym2 && find_global_symbol_by_demangled_name(e->patched, > sym1, &sym2)) > return -1; > > if (sym2 && !sym2->twin) { > sym1->twin = sym2; > sym2->twin = sym1; > WARN("correlate LOCAL %s (original) to GLOBAL %s > (patched)", > sym1->name, sym2->name); > } > } > > > + > > + /* Correlate original globals with patched locals */ > > + for_each_sym(e->patched, sym2) { > > + if (sym2->twin || dont_correlate(sym2) || !is_local_sym(sym2)) > > + continue; > > + sym1 = find_global_symbol_by_name(e->orig, sym2->name); > > + if (!sym1 && find_global_symbol_by_demangled_name(e->patched, > > sym2, &sym1)) > ^^^^^^^^^^ > > should be e->orig?
Yes, exactly... Thanks for catching this bug! Song
