Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix DITemplateTypeParameter and DITemplateValueParameter #54

Merged
merged 2 commits into from
Dec 7, 2018

Conversation

langston-barrett
Copy link
Collaborator

Tested and working on a very large C++ program.

Tested and working on a _very_ large C++ program.

Fixes GaloisInc#43, text copied from that issue:

--------------------------------------------------------

Okay, this particular node has an especially twisted history.

 0. [Feb 12, 2015](llvm-mirror/llvm@8921bbc): `MDTemplateTypeParameter` lands. It's fields have type
    i. `Num`
   ii. `Maybe PValMd`
   iii. `MDString`
   iv. `Maybe PValMd`
    v. `Maybe PValMd`
 1. [Feb 18, 2015](llvm-mirror/llvm@eac950e ): The last field, "scope", was dropped, and the type of the second field was made into a `MDString`.
 2. [Apr 23, 2016](llvm-mirror/llvm@de74840): Removal of MDString-based references (see GaloisInc#39). Third field is made into a `DITypeRef`.

Interestingly, at no point in this process does the field only have three fields, [as it does in the AST](https://github.com/elliottt/llvm-pretty/blob/de881be8e97bc085150d816d359599d75ad3ac9b/src/Text/LLVM/AST.hs#L1100).

The biggest flaw I'm seeing is that the first field of the record _is not a reference_, but it is looked up as if it is one. This is causing the parser to crash, because the reference is not defined.
This is so the bitcode parser can depend on a version with current support
for DITemplate(Type|Value)Parameter, see last commit
@langston-barrett
Copy link
Collaborator Author

I ran git tag 0.7.7 before I pushed and ran git push --tags, but I think those may only have effects in my fork. After this is merged, I might push a tag to this remote.

@langston-barrett langston-barrett merged commit 2020acd into GaloisInc:master Dec 7, 2018
@langston-barrett
Copy link
Collaborator Author

I created a tag: https://github.com/elliottt/llvm-pretty/releases/tag/llvm-pretty-0.7.7

I probably should've been doing that with each change...

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