v8/test/unittests
Anton Bikineev 92eae6d126 cppgc: Force EBO to always work with GCed
Currently, in the following struct

struct LayoutObject : GarbageCollected<>, MixinA, MixinB {};

the subobject that corresponds to the first base GarbageCollected<>
always takes up some space (one word). The empty-base-optimization
doesn't happen because the second base (MixinA) has the same subobject
as the first base (GarbageCollected), which is the most parent class
GarbageCollectedBase. The compiler can't "merge" them because it must
guarantee that distinct objects of the same type have distinct
addresses.

The attribute [[no_unique_address]] doesn't work for base classes,
unfortunately (but is a good idea for a Standard proposal). As a
solution, the CL simply removes GarbageCollectedBase.

Bug: chromium:1260797
Change-Id: I415b10a5fbcebce3d6ee97b8870ea9ae90f383a8
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3259654
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77693}
2021-11-03 22:23:59 +00:00
..
api Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
asmjs [Respect] Prefer inclusive terms 2020-06-22 18:11:23 +00:00
assembler [LOONG64] Add LoongArch64 backend 2021-08-16 13:05:19 +00:00
base Introduce v8_enable_virtual_memory_cage 2021-08-11 16:13:42 +00:00
codegen [Compiler] Remove untrusted code mitigations. 2021-08-12 12:58:24 +00:00
compiler Reland "[arm64][wasm-simd] Use Cm(0) for integer comparison with 0" 2021-10-06 12:59:27 +00:00
compiler-dispatcher Reland "[off-thread] Allow off-thread top-level IIFE finalization" 2021-11-03 10:58:59 +00:00
date Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
debug [inspector] Speed up DebugPropertyIterator. 2021-09-13 12:52:11 +00:00
diagnostics [gdbjit] Fix overlapping AddressRegion check 2021-08-19 17:29:57 +00:00
execution Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
heap cppgc: Force EBO to always work with GCed 2021-11-03 22:23:59 +00:00
interpreter [class] Add IC support for defining class fields to replace runtime call 2021-10-13 10:40:24 +00:00
libplatform [Jobs API]: Cleanup migration of missing Jobs pieces. 2020-09-02 20:51:29 +00:00
logging Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
numbers [fastcall] Support JSArray as arguments 2021-06-23 14:01:40 +00:00
objects [sandbox] Disallow ArrayBuffers outside the VM Cage 2021-08-25 09:52:38 +00:00
parser [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in test/{common,unittests} 2020-11-06 06:07:54 +00:00
profiler [cpu-profiler] Add method to estimate mem size of ProfilerCodeObserver 2021-08-23 19:07:15 +00:00
regexp [regexp] Hide the generic JSRegExp::DataAt/SetDataAt accessors 2021-09-29 11:37:41 +00:00
regress [heap] Remove Factory::NewUninitializedFixedArray 2021-04-26 13:52:38 +00:00
runtime Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
security Move heap sandbox related code into a new security/ directory 2021-10-19 12:00:34 +00:00
strings [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
tasks Reland "[off-thread] Allow off-thread top-level IIFE finalization" 2021-11-03 10:58:59 +00:00
torque [torque] Make return types required 2021-09-30 15:54:17 +00:00
utils [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
wasm [wasm-gc] Support immutable arrays 2021-10-14 12:48:27 +00:00
zone [zone] Final cleanup of zone allocations 2020-07-16 17:47:46 +00:00
avoid-windows-h-includes.cc Test that heap-inl.h doesn't include windows.h 2021-10-14 21:18:51 +00:00
BUILD.gn unittests: Move conditional include out of wasm section 2021-10-18 09:39:18 +00:00
DEPS Move unit tests to test/unittests. 2014-10-01 08:34:25 +00:00
run-all-unittests.cc [sandbox] Disallow ArrayBuffers outside the VM Cage 2021-08-25 09:52:38 +00:00
test-helpers.cc Revert "[off-thread] Allow off-thread top-level IIFE finalization" 2021-11-01 20:47:50 +00:00
test-helpers.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-utils.cc Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
test-utils.h Reland "[include] Split out v8.h" 2021-08-24 13:08:55 +00:00
testcfg.py [unittests] initialize the loop variable 2020-06-05 12:24:10 +00:00
unittests.status PPC: skip some cppgc tests as PPC page size is too large 2021-07-12 20:24:14 +00:00