• Stephan Bergmann's avatar
    For Clang -fsanitize=vptr use -fvisibility-ms-compat, not -fvisibility=hidden · f0aa1a78
    Stephan Bergmann yazdı
    As discussed in b4f6b26b "SAL_DLLPUBLIC_RTTI for
    proper RTTI visibility for LLVM," RTTI-based -fsanitize= checks with Clang on
    Linux need special precautions to make RTTI symbols visible across DSOs.  The
    approach taken there, as well as in 598d8194
    "Visible function type RTTI for Clang -fsanitize=function," was to add explicit
    SAL_DLLPUBLIC_RTTI annontations to relevant type definitions.  However, for
    -fsanitize=vptr that would have required many more of those, so it appears
    easier to "misuse" -fsanitize-ms-compat in that case, which happens to give all
    RTTI symbols default visibility (while otherwise still honoring our
    SAL_DLLPUBLIC/PRIVATE annotations).
    
    The SAL_DLLPUBLIC_RTTI annotations from 598d8194
    "Visible function type RTTI for Clang -fsanitize=function" can likely be removed
    again.
    
    Change-Id: Ibeff7ab8c908111a7dc66ff0677204f112b24db8
    f0aa1a78
ubsan-visibility.patch 444 Bytes