.symver foo, foo@ver creates the MCSymbolELF foo@ver whose almost all
attributes (including st_size) should inherit from foo (GNU as behavior).
a041ef1bd8905f0d58e301c6830b183002ff1847 added st_size propagation which works
for many cases but fails for the following one:
.set __GLIBC_2_12_sys_errlist, _sys_errlist_internal .type __GLIBC_2_12_sys_errlist,@object .size __GLIBC_2_12_sys_errlist, 1080 .symver __GLIBC_2_12_sys_errlist, sys_errlist@GLIBC_2.12 ... _sys_errlist_internal: .size _sys_errlist_internal, 1072
sys_errlist@GLIBC_2.12's st_size is 1072 (incorrect), which does not match
__GLIBC_2_12_sys_errlist's st_size: 1080.
The problem is that Base is (the final) _sys_errlist_internal while we want
to respect (the intermediate) __GLIBC_2_12_sys_errlist's st_size.
Fix this by following the MCSymbolRefExpr assignment chain and finding
the closest non-null getSize(), which covers most needs. Notably MCBinaryExpr
is not handled, but it is rare enough to matter.
Nit: which covers most needs or which can cover most needs