I’ve been seeing a crash in llvm_gcda_emit_arcs() on x86_64. The crash occurs executing a movdqa instruction with an unaligned src address. The attached patch to the compiler-rt project fixes the problem by using memcpy() to read data from the write_buffer in GCDAProfiling.c.
This is my first patch submission to llvm so please let me know if I’ve missed any steps. I’m not on the mailing list so please include me on any replies.
I haven’t run the tests on this change but would be happy to do so if someone could point me to documentation on how to do so. I couldn’t find testing instructions linked from http://llvm.org/docs/DeveloperPolicy.html. I have built the change and run it with the programs I was testing originally. With this change the crash no longer occurs.
memcpy-to-writebuffer.patch (578 Bytes)