- 29 Aug, 2019 1 commit
-
-
Maya Lekova authored
Since this produces a few false positives, also implemented a whitelist mechanism to not report them. Also, add a couple of tests and implemented automated testing against test-expectations file. Bug: v8:9321 Change-Id: I2915a29fe1891e8bbc51118bbd95ae072c8de023 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1773243 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63456}
-
- 13 Mar, 2019 1 commit
-
-
Michael Starzinger authored
This updates the existing special casing of assignment operators by gcmole to match for assignments of {HeapObject} instead of {HeapObject*} variables. The former now uses the implicit C++ assignment operator call instead of a primitive assignment binary operation. Also removes the dead {handle_decl_name} field as a drive-by-fix. R=mslekova@chromium.org BUG=v8:8813 Change-Id: I0b48254e7ca1544bc064707a8ca1f204366ddbe4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1517879 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#60212}
-
- 11 Mar, 2019 1 commit
-
-
Michael Starzinger authored
R=mslekova@chromium.org BUG=v8:8813 Change-Id: I4d35fdff0f398c4eac3a97932a5e6ce43a49d9c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1514683 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#60171}
-
- 07 Mar, 2019 1 commit
-
-
Maya Lekova authored
After introducing the new pointer-containing Object class in V8 (see https://docs.google.com/document/d/1_w49sakC1XM1OptjTurBDqO86NE16FH8LwbeUAtrbCo/edit), gcmole stopped finding errorneous usage of raw pointers in functions that could trigger GC. This CL modifies the heuristics of the tool to classify Object and MaybeObject instances as raw pointers, thus giving back the missing warnings. Updated the gcmole implementation to support modern llvm (tested with llvm 8.0) for which additional support for MaterializeTemporaryExpr, ExprWithCleanups and UnaryExprOrTypeTraitExpr was needed. Basic tests are added to make it harder to introduce such errors without noticing in the future. This version gives a lot of false positives when ran on the whole project, see https://docs.google.com/document/d/1K7eJ0f6m9QX6FZIjZnt_GFtUsjEOC_LpiAwZbcAA3f8/edit R=jkummerow@chromium.org,mstarzinger@chromium.org Bug: v8:8813 Change-Id: Ic0190a4bc2642eda8880d9f7b30b5145a76a7d89 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1494754 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60099}
-
- 16 Feb, 2017 1 commit
-
-
clemensh authored
Enforce the invariant that unreachable implicates an empty live set and fix the implementation of |= and &= operator. This is a fix-up for http://crrev.com/2694103005. R=vegorov@chromium.org CC=mstarzinger@chromium.org, machenbach@chromium.org BUG=v8:5970 Review-Url: https://codereview.chromium.org/2691103008 Cr-Commit-Position: refs/heads/master@{#43251}
-
- 15 Feb, 2017 1 commit
-
-
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}
-
- 07 Aug, 2014 1 commit
-
-
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
-
- 23 Apr, 2013 1 commit
-
-
mstarzinger@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/13950017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 17 Feb, 2012 1 commit
-
-
vegorov@chromium.org authored
Detect those methods by reference to StateTag::EXTERNAL in their bodies. R=fschneider@google.com Review URL: https://chromiumcodereview.appspot.com/9420046 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10738 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 16 May, 2011 1 commit
-
-
vegorov@chromium.org authored
Fix various places in the code found by improved GCMole. Review URL: http://codereview.chromium.org/6973063 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Apr, 2011 1 commit
-
-
vegorov@chromium.org authored
GCMole is a simple static analysis tool that searches for GC-usafe evaluation order dependent callsites. Review URL: http://codereview.chromium.org/6812002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-