GaloisInc / cclyzerpp

cclyzer++ is a precise and scalable pointer analysis for LLVM code.
https://galoisinc.github.io/cclyzerpp/
BSD 3-Clause "New" or "Revised" License
134 stars 15 forks source link

fact-gen: move is_itanium_encoding to Demangler #149

Closed adrianherrera closed 1 year ago

adrianherrera commented 1 year ago

Hey @langston-barrett! Just a tiny mod from me; moving is_itanium_encoding from the FactGenerator to the Demangler. I think this makes sense (as it's related to demangling) and means I can access the encoding check from outside the fact generator.

Cheers!!

langston-barrett commented 1 year ago

Looks good, thanks @adrianherrera!

woodruffw commented 1 year ago

Just a heads up: I believe we can delete that function entirely now, since we're no longer on LLVM 7. I only added it because it wasn't a public LLVM API at the time 🙂

adrianherrera commented 1 year ago

@woodruffw ah right, good to know. I wasn't sure how far back cclyzer++ went with LLVM versions.

woodruffw commented 1 year ago

@langston-barrett can correct me, but I believe the minimum LLVM version was 9 last time I checked.

langston-barrett commented 1 year ago

Yeah, I was going to post an issue to this effect, but it's actually not clear to me that isItaniumEncoding is part of LLVM's public API? I see it here:

https://github.com/llvm/llvm-project/blob/8cc718924341c3b0d8cede9e1b25755afd905dfe/llvm/lib/Demangle/Demangle.cpp#L17

but not here:

https://llvm.org/doxygen/Demangle_8h.html

Current supported LLVM versions are LLVM 14-12 (doc), but the CI also builds against LLVM 15.