<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr" style="color:rgb(0,0,0)">Hi all,</div><div dir="ltr" style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">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:</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)"><a href="https://docs.google.com/document/d/1C6WLgoqoDJCTTSFGK01X8sR2sEccXV5JMabvTHlpOGE/edit?usp=sharing">https://docs.google.com/document/d/1C6WLgoqoDJCTTSFGK01X8sR2sEccXV5JMabvTHlpOGE/edit?usp=sharing</a><br></div><div style="color:rgb(0,0,0)"></div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">It would be great to hear any comments or suggestions!</div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">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 (<a href="https://github.com/llvm/llvm-project/blob/main/libcxx/include/cstddef#L87" target="_blank">https://github.com/llvm/llvm-project/blob/main/libcxx/include/cstddef#L87</a>). 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? </div><div style="color:rgb(0,0,0)"><br></div><div style="color:rgb(0,0,0)">Thanks,</div><div style="color:rgb(0,0,0)">George</div></div></div></div>