JuliaHubOSS / llvm-cbe

resurrected LLVM "C Backend", with improvements
Other
826 stars 141 forks source link

Ensure function types referenced by struct types are declared (fix #101) #103

Closed hikari-no-yume closed 3 years ago

hikari-no-yume commented 3 years ago

This fixes my original Rust code from #101, my simple C reproducer, and I've even verified that it fixes the LLVM IR from #66.

hikari-no-yume commented 3 years ago

The second commit (https://github.com/JuliaComputing/llvm-cbe/pull/103/commits/929017eac8b24a88ebea0182c6e3c6ac2983233d) is a bonus fix for a theoretical issue with function type dependencies. The code didn't consider more than one level of pointer indirection. I haven't seen that one in real code (just contrived C code), but I suppose it will happen eventually.

If you'd prefer not to merge it with the other fix, I can make it into its own pull request. It's only in this one because the test depends on the other fix.

hikari-no-yume commented 3 years ago

(If you do merge both commits, I guess it would be better to use the rebase rather than squash option.)

hikari-no-yume commented 3 years ago

(I noticed you approved it but did not merge it. Are you intending to let it sit for a while before merging? Or wanting someone else to review it? I'm fine with either for what it's worth. Just to be clear, though: I can't merge it myself.)

vtjnash commented 3 years ago

I left it open so that you could have some commits to land now that you have access :)