Making clang work with opaque pointers

As part of the opaque pointers migration, we need to make the clang frontend not depend on PointerType’s pointee type. There are a couple random places that need to be fixed up to not use PointerType::getElementType and Type::getPointerElementType(), but the biggest issue is (I believe) clang::CodeGen::Address (and LValue/RValue?).

I had a very preliminary attempt in https://reviews.llvm.org/D103465 but am not super familiar with the clang frontend. Is there anybody more familiar with clang who’d be willing to make clang work with opaque pointers?

Aaron - any ideas on who, if anyone, might be able to help out on this?

Aaron - any ideas on who, if anyone, might be able to help out on this?

I've CCed in some folks who may be able to help (but I am not certain
whether they've got the bandwidth or not).

~Aaron

Aaron - any ideas on who, if anyone, might be able to help out on this?

I’ve CCed in some folks who may be able to help (but I am not certain
whether they’ve got the bandwidth or not).

~Aaron

As part of the opaque pointers migration, we need to make the clang frontend not depend on PointerType’s pointee type. There are a couple random places that need to be fixed up to not use PointerType::getElementType and Type::getPointerElementType(), but the biggest issue is (I believe) clang::CodeGen::Address (and LValue/RValue?).

My expectation is that clang::CodeGen::Address will just start carrying an element type. So the preparation for removing element types should be that we pass an element type to the places that construct an Address from scratch and (for now) assert that it matches the pointer element type.

John.