[NFC] Refactor GUFA's NullLocation and CaughtExnRefLocation into RootLocation#7822
Merged
kripken merged 7 commits intoWebAssembly:mainfrom Aug 13, 2025
Merged
[NFC] Refactor GUFA's NullLocation and CaughtExnRefLocation into RootLocation#7822kripken merged 7 commits intoWebAssembly:mainfrom
kripken merged 7 commits intoWebAssembly:mainfrom
Conversation
tlively
reviewed
Aug 13, 2025
src/ir/possible-contents.h
Outdated
Comment on lines
+505
to
+506
| // exnref from a catch etc. - in all these cases, all we know is the type and | ||
| // nothing more, so these are simple typed roots in the graph. |
Member
There was a problem hiding this comment.
For the default local value and default struct field value, we know the values (zero) in addition to the types. Why are they lumped in with things like caught exceptions, for which we really don't know the value?
Member
Author
There was a problem hiding this comment.
They are both roots in the graph, hence the shared name for them. They are fixed points in the graph that we will never learn anything more about, with fixed values (one value is null, the other is "anything of this type", but that's the only difference).
kripken
added a commit
that referenced
this pull request
Aug 15, 2025
RootLocation, added in #7822, was overly-ambitious in how much it simplified. It turns out that there are situations where we need the same type for both a null and an "unknown" of that type, and a single RootLocation is therefore not enough (the specific situation the fuzzer found involves exnref, but perhaps others are possible too). To fix this, refactor back to two locations, NullLocation and TypeLocation, where the latter is at least shared by exn and cont as a place with an unknown value of a type.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Both locations are just roots in the graph: sources of info that we will only
ever know the type of, and nothing more precise. It is simpler to have a
single RootLocation for them both, and will simplify adding Continuations
later.