Attribute Class Evaluation #74
Merged
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.
When is a
blockNnot ablockN? When it's attribute class says otherwise :eyeroll:Section 7, Figure 20 of the DWARF4 spec is a table giving a set of attributes and the possible ways the data they contain may be evaluated. For example, even if a
DW_AT_vtable_elem_locationattribute stores its values as ablock1form, the value is actually anexprloc, and should be evaluated as such.This PR adds a layer of indirection around the evaluation of
blockNforms, looking up the attribute class and performing the "right" evaluation as necessary. I say "right" because we only really do the right thing forconstantandexprlocevaluations. Everything else is interpreted as aconstant, for better or worse. When we find real-world values of the alternate classes that break ORC, we should address them.