Prior to this change, for non-relocatable objects llvm-readobj would assume that all symbols that corresponded to a stack size section's entries were in the section specified by the section's sh_link field. However, in the event that there are multiple sections, the sh_link field cannot be respected, as it only indicates one of those sections (LLD sets the value to the first such section but see D76410 for a possible solution).
This patch changes llvm-readobj to ignore the section of symbols in a non-relocatable object (except for undefined symbols which are ignored). One behaviour change is that function symbols that share a value, but in different sections (typically these would appear at the end of a section) will result in the first being picked, even if the second is in the section for the sh_link value. As such symbols will almost never exist (it would require a zero-byte function or a symbol with an incorrect type), I think this is okay.
--implicit-check-not=warning: may be slightly better.
It is unlikely that the absolute path of %s contains warning: