EricWF added a comment. @t.p.northover @olista01 A char array can legally alias any other type memory AFAIK. Its perfectly legal to use a char array to provide raw memory. There shouldn't be any undefined behavior here. Repository: rL LLVM http://reviews.llvm.org/D14119