1. 12 Jan, 2021 1 commit
    • Camillo Bruni's avatar
      [tools] Add DisableGCMole scope · d16a2a68
      Camillo Bruni authored
      Make sure gcmole detects issue in DisallowGarbageCollection scopes.
      
      DisallowGarbageCollection is widely used in the codebase to document
      code that doesn't allocate. However, this has the rather unexpected
      side-effect that gcmole is not run when such a scope is active.
      
      This CL changes the default behavior of gcmole to run even with
      DisallowGarbageCollection scopes present. This will give us the best
      results of both worlds, dynamic checks by the fuzzer, and static
      analysis by gcmole.
      
      To allow crazy local raw pointer operations there is a new
      DisableGCMole scope that explicitly disables gcmole.
      
      Change-Id: I0a78fb3b4ceaad35be9bcf7293d917a41f90c91f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615419Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72039}
      d16a2a68
  2. 20 Nov, 2020 1 commit
  3. 17 Nov, 2020 1 commit
    • Leszek Swirski's avatar
      [asserts] Add combination assert scopes · 076687ab
      Leszek Swirski authored
      Add a "combination" assert scope class, which combines multiple existing
      assert scopes.  This will allow scopes with functional overlap, e.g.
      DisallowGarbageCollection and DisallowHeapAllocation, to share an assert
      type rather than rather than requiring users to remember to set both. To
      demonstrate this, this redefines DisallowGarbageCollection to a
      combination of DisallowHeapAllocation and a new DisallowSafepoints, and
      some of the DCHECKs checking both are simplified to only check one or
      the other, as appropriate.
      
      The combination classes become subclasses of the existing assert scopes,
      so that they can be used in their place as e.g. a function parameter,
      e.g. DisallowGarbageCollection can be passed to a function expecting
      const DisallowHeapAllocation&.
      
      As a drive-by, this also changes the per-thread assert scopes to use a
      bitmask, rather than a bool array, to store their per-thread data. The
      per-isolate scopes already used a bitmask, so this unifies the
      behaviour between the two.
      
      Change-Id: I209e0a56f45e124c0ccadbd9fb77f39e070612fe
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2534814
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71231}
      076687ab
  4. 16 Nov, 2020 1 commit
  5. 26 Oct, 2020 1 commit
  6. 14 Sep, 2020 1 commit
  7. 24 Jun, 2020 1 commit
  8. 22 Jun, 2020 1 commit
  9. 19 Jun, 2020 1 commit
  10. 18 May, 2020 1 commit
  11. 13 Dec, 2019 1 commit
  12. 26 Nov, 2019 2 commits
  13. 29 Aug, 2019 1 commit
  14. 13 Mar, 2019 1 commit
  15. 11 Mar, 2019 1 commit
  16. 07 Mar, 2019 1 commit
  17. 16 Feb, 2017 1 commit
  18. 15 Feb, 2017 1 commit
    • clemensh's avatar
      [gcmole] Avoid hardcoded maximum of 256 locals · b8787e34
      clemensh authored
      This CL changes the datastructure to store live variables from a
      std::bitset<256> to a std::vector<bool> to support an arbitrary number
      of locals. Unfortunately, std::vector<bool> does not define |= and &=
      operators, so I added them on the Environment class.
      
      R=vegorov@chromium.org, mstarzinger@chromium.org, machenbach@chromium.org
      BUG=v8:5970
      
      Review-Url: https://codereview.chromium.org/2694103005
      Cr-Commit-Position: refs/heads/master@{#43216}
      b8787e34
  19. 07 Aug, 2014 1 commit
    • svenpanne@chromium.org's avatar
      Update gcmole to a more recent clang/llvm. · 6e75bfc3
      svenpanne@chromium.org authored
      * Changes for 2.9:
           * Use CXX in Makefile instead of hardwired g++, we need a more
             modern GCC than 4.6 later, anyway.
      
      * Changes for 3.0:
           * Use llvm namespace.
           * Diagnostic => DiagnosticsEngine.
      
      * Changes for 3.1:
           * The BlockDeclRefExpr AST node is gone.
           * The structure of the CXXNewExpr AST node has changed.
           * Path changed from Release to Release+Asserts.
           * Use clang++ instead of -cc1, otherwise we lose the system include
             paths.
      
      * Changes for 3.2:
           none needed
      
      * Changes for 3.3:
           * Use lookup_iterator::begin/end instead of first/second.
      
      * Changes for 3.4:
           * createItaniumMangleContext => ItaniumMangleContext::create.
      
      * Changes for 3.5:
           * clang uses <type_traits> now, so -std=c++0x is needed.
           * Type-trait-related AST changes.
           * getCustomDiagID signature changed.
           * We must link the C++ library statically now.
      
      R=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/445983002
      
      git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      6e75bfc3
  20. 23 Apr, 2013 1 commit
  21. 17 Feb, 2012 1 commit
  22. 16 May, 2011 1 commit
  23. 07 Apr, 2011 1 commit