Skip to content
Snippets Groups Projects
  1. Mar 26, 2015
  2. Mar 20, 2015
    • Alexey Samsonov's avatar
      [UBSan] Don't allow to use UBSan with anything except for ASan. · 4a33a589
      Alexey Samsonov authored
      We are not able to make a reliable solution for using UBSan together
      with other sanitizers with runtime support (and sanitizer_common).
      Instead, we want to follow the path used for LSan: have a "standalone"
      UBSan tool, and plug-in UBSan that would be explicitly embedded into
      specific sanitizers (in short term, it will be only ASan).
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@232829 91177308-0d34-0410-b5e6-96231b3b80d8
      4a33a589
    • Reid Kleckner's avatar
      C++14: Disable sized deallocation by default due to ABI breakage · 79bcca26
      Reid Kleckner authored
      There are no widely deployed standard libraries providing sized
      deallocation functions, so we have to punt and ask the user if they want
      us to use sized deallocation. In the future, when such libraries are
      deployed, we can teach the driver to detect them and enable this
      feature.
      
      N3536 claimed that a weak thunk from sized to unsized deallocation could
      be emitted to avoid breaking backwards compatibility with standard
      libraries not providing sized deallocation. However, this approach and
      other variations don't work in practice.
      
      With the weak function approach, the thunk has to have default
      visibility in order to ensure that it is overridden by other DSOs
      providing sized deallocation. Weak, default visibility symbols are
      particularly expensive on MachO, so John McCall was considering
      disabling this feature by default on Darwin. It also changes behavior
      ELF linking behavior, causing certain otherwise unreferenced object
      files from an archive to be pulled into the link.
      
      Our second approach was to use an extern_weak function declaration and
      do an inline conditional branch at the deletion call site. This doesn't
      work because extern_weak only works on MachO if you have some archive
      providing the default value of the extern_weak symbol. Arranging to
      provide such an archive has the same challenges as providing the symbol
      in the standard library. Not to mention that extern_weak doesn't really
      work on COFF.
      
      Reviewers: rsmith, rjmccall
      
      Differential Revision: http://reviews.llvm.org/D8467
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@232788 91177308-0d34-0410-b5e6-96231b3b80d8
      79bcca26
  3. Mar 14, 2015
  4. Mar 12, 2015
  5. Mar 11, 2015
  6. Mar 10, 2015
  7. Mar 09, 2015
  8. Mar 07, 2015
  9. Mar 05, 2015
  10. Mar 03, 2015
    • Alexey Samsonov's avatar
      [UBSan] Split -fsanitize=shift into -fsanitize=shift-base and -fsanitize=shift-exponent. · 6cb698a5
      Alexey Samsonov authored
      -fsanitize=shift is now a group that includes both these checks, so
      exisiting users should not be affected.
      
      This change introduces two new UBSan kinds that sanitize only left-hand
      side and right-hand side of shift operation. In practice, invalid
      exponent value (negative or too large) tends to cause more portability
      problems, including inconsistencies between different compilers, crashes
      and inadequeate results on non-x86 architectures etc. That is,
      -fsanitize=shift-exponent failures should generally be addressed first.
      
      As a bonus, this change simplifies CodeGen implementation for emitting left
      shift (separate checks for base and exponent are now merged by the
      existing generic logic in EmitCheck()), and LLVM IR for these checks
      (the number of basic blocks is reduced).
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231150 91177308-0d34-0410-b5e6-96231b3b80d8
      6cb698a5
  11. Feb 26, 2015
  12. Feb 25, 2015
  13. Feb 24, 2015
  14. Feb 23, 2015
  15. Feb 21, 2015
  16. Feb 20, 2015
  17. Feb 18, 2015
  18. Feb 17, 2015
  19. Feb 11, 2015
  20. Feb 10, 2015
  21. Feb 07, 2015
  22. Jan 26, 2015
  23. Jan 14, 2015
Loading