v8/test
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
..
benchmarks [test] Mark pdfjs as slow for TSAN builds 2021-07-28 14:03:46 +00:00
bigint [bigint][test] Better random input generation 2021-09-08 15:39:27 +00:00
cctest [regexp] Handle marker value 0x10ffff in MakeRangeArray 2021-11-03 09:23:00 +00:00
common [relaxed-simd][wasm] Prototype relaxed int-float trunc 2021-10-28 17:03:30 +00:00
debugger Allow name collision when materializing scope object 2021-11-02 13:06:43 +00:00
debugging [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
fuzzer [fuzzer] Add support for non-nullable reference types 2021-11-02 15:29:57 +00:00
fuzzilli Fix unhandled promise rejections in REPRL mode 2020-09-30 13:34:23 +00:00
inspector Improve error message when using await in DebugEvaluate 2021-10-28 09:56:40 +00:00
intl Roll ICU and correct timezone test 2021-10-21 18:39:31 +00:00
js-perf-test [class] refactor ClassFields benchmarks and copy them into JSTests3 2021-11-02 08:44:43 +00:00
memory [snapshot] Fix the Memory.json benchmark 2021-04-28 07:54:34 +00:00
message Skip {map,set}-grow-failed tests on TSAN 2021-09-27 20:32:29 +00:00
mjsunit Skip wasm-struct-js-interop until bug is solved 2021-11-03 14:37:48 +00:00
mkgrokdump [sandbox] Disallow ArrayBuffers outside the VM Cage 2021-08-25 09:52:38 +00:00
mozilla Reland "[test] Unmark TSAN tests as SLOW/SKIP" 2021-06-28 10:19:20 +00:00
test262 [test262] Roll test262 2021-11-03 16:37:20 +00:00
torque [torque] Make return types required 2021-09-30 15:54:17 +00:00
unittests cppgc: Force EBO to always work with GCed 2021-11-03 22:23:59 +00:00
wasm-api-tests [wasm][test] Cleanup macros 2021-09-24 16:47:54 +00:00
wasm-js [wasm] Update spec tests 2021-10-12 12:39:37 +00:00
wasm-spec-tests [wasm] Update spec tests 2021-10-12 12:39:37 +00:00
webkit [tests] Increase stack-size limit to make tests pass in debug mode 2021-10-26 07:05:19 +00:00
BUILD.gn Reland^2 "[bigint] Karatsuba multiplication" 2021-06-07 11:01:14 +00:00
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00