[GSoC] Fixing fundamental issues in LLVM IR

Hi all,

I have created a proposal for the GSoC project “Fixing fundamental issues in LLVM IR”, focusing on the problem with compiler-introduced type punning. It is available at:


It would be great to hear any comments or suggestions!

Meanwhile, I have a question regarding the lowering of std::byte to i8 in when going from Clang to LLVM. I have seen that in standard library it is defined as enum class : unsigned char (https://github.com/llvm/llvm-project/blob/main/libcxx/include/cstddef#L87). I suppose that std::byte lowering may then have some different properties. I have compiled a simple test program that uses it to LLVM IR, but it looks like standard i8 with operations wrapped into function calls. I am wondering if there is something more in this?