{"push_id":3566491342,"size":1,"distinct_size":1,"ref":"refs/heads/trunk","head":"28f50a0e2ede4fc168a015c27636f970196eb581","before":"9898e64fe8b5790e213eb5cbdca204afa56bea38","commits":[{"sha":"28f50a0e2ede4fc168a015c27636f970196eb581","author":{"name":"sberg","email":"cd6c803d2f808e928286906f00cae31b19c2320d@91177308-0d34-0410-b5e6-96231b3b80d8"},"message":"Adapt -fsanitize=function to SANITIZER_NON_UNIQUE_TYPEINFO\n\nThis follows up after b7692bc3e9ad2691fc07261904b88fb15f30696b \"[UBSan] Fix\nisDerivedFromAtOffset on iOS ARM64\" fixed the RTTI comparison in\nisDerivedFromAtOffset on just one platform and then\na25a2c7c9a7e1e328a5bd8274d2d86b1fadc4692 \"Always compare C++ typeinfo (based on\nlibstdc++ implementation)\" extended that fix to more platforms.\n\nBut there is another RTTI comparison for -fsanitize=function generated in\nclang's CodeGenFunction::EmitCall as just a pointer comparison.  For\nSANITIZER_NON_UNIQUE_TYPEINFO platforms this needs to be extended to also do\nstring comparison.  For that, __ubsan_handle_function_type_mismatch[_abort]\ntakes the two std::type_info pointers as additional parameters now, checks them\ninternally for potential equivalence, and returns without reporting failure if\nthey turn out to be equivalent after all.  (NORETURN needed to be dropped from\nthe _abort variant for that.)  Also these functions depend on ABI-specific RTTI\nnow, so needed to be moved from plain UBSAN_SOURCES (ubsan_handlers.h/cc) to\nUBSAN_CXXABI_SOURCES (ubsan_handlers_cxx.h/cc), but as -fsanitize=function is\nonly supported in C++ mode that's not a problem.\n\nDifferential Revision: https://reviews.llvm.org/D60760\n\ngit-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@359759 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/spurious/clang-mirror/commits/28f50a0e2ede4fc168a015c27636f970196eb581"}]}
{"actor":{"display_login":"spurious"}}