Skip to content

Conversation

kastiglione
Copy link
Contributor

@kastiglione kastiglione commented Oct 2, 2025

LoadAddressResolver::Resolve returns zero for weak symbols. However FindInSymbols does multiple searches (each starting with FindSymbolsWithNameAndType), and a resolved address of zero from one step of the search should not conclude the search.

This change continues the searching for a symbol by only performing an early exit when a concrete address is found.

This was identified by an objc class which is available only in newer OSes. Such classes are weak linked. Expressions involving this class were failing, because the search first found the weak linked symbol (which eagerly returned an address of zero).

rdar://161406615

…indInSymbols

`LoadAddressResolver::Resolve` returns zero for weak symbols. However `FindInSymbols`
does multiple searches (each starting with `FindSymbolsWithNameAndType`), and a resolved
address of zero from one step of the search should not conclude the search.

This change continues the searching for a symbol by only performing an early exit when a
concrete address is found.

This was identified by an objc class which is available only in newer OSes. Such classes
are weak linked. Expressions involving this class were failing, because the search first
found the weak linked symbol.

rdar://161406615
@kastiglione
Copy link
Contributor Author

draft while I figure out a test

@kastiglione kastiglione requested a review from jimingham October 2, 2025 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant