Skip to content
Snippets Groups Projects
  1. 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
  2. Feb 26, 2015
  3. Feb 25, 2015
  4. Feb 24, 2015
  5. Feb 23, 2015
  6. Feb 21, 2015
  7. Feb 20, 2015
  8. Feb 18, 2015
  9. Feb 17, 2015
  10. Feb 11, 2015
  11. Feb 10, 2015
  12. Feb 07, 2015
  13. Jan 26, 2015
  14. Jan 14, 2015
  15. Jan 13, 2015
  16. Jan 12, 2015
    • Alexey Samsonov's avatar
      Reimplement -fsanitize-recover family of flags. · e6c5c3f4
      Alexey Samsonov authored
      Introduce the following -fsanitize-recover flags:
        - -fsanitize-recover=<list>: Enable recovery for selected checks or
            group of checks. It is forbidden to explicitly list unrecoverable
            sanitizers here (that is, "address", "unreachable", "return").
        - -fno-sanitize-recover=<list>: Disable recovery for selected checks or
           group of checks.
        - -f(no-)?sanitize-recover is now a synonym for
          -f(no-)?sanitize-recover=undefined,integer and will soon be deprecated.
      
      These flags are parsed left to right, and mask of "recoverable"
      sanitizer is updated accordingly, much like what we do for -fsanitize= flags.
      -fsanitize= and -fsanitize-recover= flag families are independent.
      
      CodeGen change: If there is a single UBSan handler function, responsible
      for implementing multiple checks, which have different recoverable setting,
      then we emit two handler calls instead of one:
      the first one for the set of "unrecoverable" checks, another one - for
      set of "recoverable" checks. If all checks implemented by a handler have the
      same recoverability setting, then the generated code will be the same.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@225719 91177308-0d34-0410-b5e6-96231b3b80d8
      e6c5c3f4
  17. Dec 28, 2014
  18. Dec 05, 2014
  19. Dec 03, 2014
  20. Dec 02, 2014
  21. Nov 25, 2014
    • Manuel Klimek's avatar
      Re-apply r222646 (was reverted in r222667). Adding 4 ASTMatchers: typedefDecl,... · b3cf7e2f
      Manuel Klimek authored
      Re-apply r222646 (was reverted in r222667). Adding 4 ASTMatchers: typedefDecl, isInMainFile, isInSystemFile, isInFileMatchingName
      
      Change to original: ifndef out tests in Windows due to /-separated
      paths.
      
      Summary:
      Often one is only interested in matches within the main-file or matches
      that are not within a system-header, for which this patch adds
      isInMainFile and isInSystemFile. They take no arguments and narrow down
      the matches.
      
      The isInFileMatchingName is mainly thought for interactive
      clang-query-sessions, to make a matcher more specific without restarting
      the session with the files you are interested in for that moment. It
      takes a string that will be used as regular-expression to match the
      filename of where the matched node is expanded.
      
      Patch by Hendrik von Prince.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222765 91177308-0d34-0410-b5e6-96231b3b80d8
      b3cf7e2f
    • Daniel Jasper's avatar
      Add flag -f(no-)modules-implicit-maps. · 4acb6a77
      Daniel Jasper authored
      This suppresses the implicit search for files called 'module.modulemap' and
      similar.
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222745 91177308-0d34-0410-b5e6-96231b3b80d8
      4acb6a77
Loading