Historical tools for working with mach-o binaries verify the nlist field
n_strx has a non-zero value before using that value to retrieve symbol names.
Under some cirumstances, llvm-nm will attempt to display the symbol name at
position 0, even though symbol names at that position are not well defined.
This change addresses this problem by returning an empty string when n_strx
is zero.
rdar://problem/35750548
Mach-O back in 1988 when I created it, was based on 4.2 BSD Unix. In there there it states "A n_strx value of 0 indicates that no name is associated with a particular symbol table entry". Also the a.out(5) format at that time had the size of the string table as the first 4 bytes of the string table, so valid string table indexes where 4 or more. In the early days of Mach-O since the load command had the string table size, tools still reserved these 4 bytes. And generally put nulls in them so incase some tool did not correctly understand index 0 was special it would "just work".
So I would update or remove this comment.