Leszek Swirski
094359d085
[gcmole] Track table handles, slots, and members across GCs
...
Extend GCMole to check that table handles (ExternalPointerHandle,
CppHeapPointerHandle, IndirectPointerHandle, and JSDispatchHandle),
along with their slots (ExternalPointerSlot, CppHeapPointerSlot,
IndirectPointerSlot) and on-heap layout members (ExternalPointerMember,
TrustedPointerMember, CppHeapPointerMember, JSDispatchHandleMember), do
not become stale across GCs.
Table handles are tracked by value via IsTableHandleType, while interior
pointers to on-heap handle fields are covered by *Member* and *Slot
(removing JSDispatchHandle* tracking). Also handle builtin assignment
(BO_Assign) for scalar handle typedefs and ignore constexpr or non-local
variables in FunctionAnalyzer::Use so global constants like
kNullExternalPointerHandle do not trigger false positives.
TAG=agy
CONV=b28ddaf1-e172-44f5-8ec2-f06f4134b6e9
Bug: 571814087
Change-Id: Iae3d83182a058e5d92918524c46273a89ab93f85
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8545995
Auto-Submit: Leszek Swirski <leszeks@chromium.org >
Commit-Queue: Omer Katz <omerkatz@chromium.org >
Reviewed-by: Omer Katz <omerkatz@chromium.org >
Commit-Queue: Leszek Swirski <leszeks@chromium.org >
Cr-Commit-Position: refs/heads/main@{#110540}
2026-10-09 13:08:05 -07:00
..
2026-04-30 04:55:48 -07:00
2026-08-12 04:39:55 -07:00
2026-08-04 06:43:59 -07:00
2026-08-21 02:23:41 -07:00
2026-10-08 00:56:52 -07:00
2026-06-22 02:41:04 -07:00
2026-10-06 03:03:17 -07:00
2026-10-06 06:02:48 -07:00
2025-02-26 03:09:39 -08:00
2026-10-09 13:08:05 -07:00
2022-08-05 14:55:00 +00:00
2025-12-17 09:40:46 -08:00
2026-07-07 22:10:11 -07:00
2026-09-28 08:56:52 -07:00
2025-12-17 09:40:46 -08:00
2018-12-18 15:00:35 +00:00
2017-05-09 15:25:21 +00:00
2026-09-14 03:21:32 -07:00
2024-06-28 11:34:31 +00:00
2026-10-09 06:23:18 -07:00
2021-05-27 08:24:50 +00:00
2017-11-22 07:19:50 +00:00
2026-07-01 09:52:35 -07:00
2024-04-23 13:05:59 +00:00
2026-10-09 02:05:10 -07:00
2026-09-14 03:21:32 -07:00
2026-09-14 03:21:32 -07:00
2023-03-17 10:30:29 +00:00
2026-05-05 02:22:52 -07:00
2026-10-09 02:42:02 -07:00
2022-09-13 07:54:54 +00:00
2025-11-26 07:36:25 -08:00
2026-08-11 10:09:01 -07:00
2025-10-07 00:12:23 -07:00
2026-04-15 09:39:09 -07:00
2025-12-30 10:04:56 -08:00
2018-03-26 12:17:08 +00:00
2024-05-15 15:17:32 +00:00
2026-09-28 04:47:28 -07:00
2025-06-27 02:32:50 -07:00
2024-11-15 10:05:11 +00:00
2022-08-05 14:55:00 +00:00
2012-07-27 11:14:44 +00:00
2022-08-05 14:55:00 +00:00
2023-10-25 16:19:06 +00:00
2022-08-05 14:55:00 +00:00
2026-08-26 05:27:13 -07:00
2022-08-05 14:55:00 +00:00
2026-09-16 07:03:50 -07:00
2025-04-09 08:54:05 -07:00
2023-04-27 07:41:35 +00:00
2025-05-06 01:08:51 -07:00
2025-04-09 08:54:05 -07:00
2026-06-09 08:23:27 -07:00
2017-09-08 09:31:32 +00:00
2021-02-12 09:47:44 +00:00
2017-08-02 11:11:19 +00:00
2018-11-08 17:57:05 +00:00
2026-03-06 01:57:48 -08:00
2023-10-25 16:19:06 +00:00
2018-06-01 15:19:21 +00:00
2022-02-08 15:46:11 +00:00
2015-04-10 12:35:16 +00:00
2021-01-11 16:40:39 +00:00
2026-03-31 03:27:09 -07:00
2014-02-20 16:37:40 +00:00
2022-04-08 19:46:22 +00:00
2014-06-03 13:39:42 +00:00
2016-06-09 10:17:32 +00:00
2022-09-13 07:54:54 +00:00
2014-03-21 09:28:26 +00:00
2022-08-05 14:55:00 +00:00
2021-07-01 09:59:17 +00:00
2022-04-06 11:31:03 +00:00
2022-08-05 14:55:00 +00:00
2021-11-10 09:29:41 +00:00
2019-02-19 09:12:07 +00:00
2021-04-07 12:51:38 +00:00
2022-08-05 14:55:00 +00:00
2026-04-27 07:08:59 -07:00
2025-03-25 10:21:48 -07:00
2016-12-02 11:36:55 +00:00
2023-07-26 10:34:30 +00:00
2023-07-26 10:34:30 +00:00
2022-08-05 14:55:00 +00:00
2023-08-18 19:13:45 +00:00
2026-07-03 06:55:21 -07:00
2025-07-28 05:50:27 -07:00
2024-04-23 16:11:30 +00:00
2026-08-31 02:55:09 -07:00
2025-03-17 03:38:26 -07:00
2022-08-05 14:55:00 +00:00
2024-12-13 06:51:31 -08:00
2020-03-26 12:07:56 +00:00
2022-04-04 11:03:36 +00:00
2025-05-26 08:51:58 -07:00
2023-06-21 13:12:02 +00:00
2026-04-27 07:08:59 -07:00
2023-09-01 18:44:20 +00:00
2025-09-11 12:40:14 -07:00
2022-08-29 14:14:56 +00:00
2026-04-27 07:08:59 -07:00
2026-09-14 03:21:32 -07:00
2024-10-14 11:37:53 +00:00
2026-09-14 03:21:32 -07:00
2026-04-28 06:27:35 -07:00
2026-03-16 06:46:41 -07:00
2018-01-26 12:03:32 +00:00
2022-08-05 14:55:00 +00:00
2021-11-25 07:55:08 +00:00
2026-08-11 10:09:01 -07:00
2024-09-17 19:14:28 +00:00
2026-04-27 07:08:59 -07:00
2021-07-01 09:59:17 +00:00
2024-08-20 15:01:52 +00:00
2022-08-04 19:00:33 +00:00
2026-01-19 01:35:04 -08:00
2023-08-18 19:13:45 +00:00
2024-10-21 14:16:23 +00:00
2023-01-12 14:16:16 +00:00
2025-12-01 04:31:18 -08:00
2014-08-04 08:31:49 +00:00
2020-11-10 12:32:26 +00:00
2026-04-27 07:08:59 -07:00
2024-09-17 19:14:28 +00:00
2026-01-27 03:53:58 -08:00
2026-09-14 03:21:32 -07:00
2026-09-14 03:21:32 -07:00
2022-08-05 14:55:00 +00:00
2022-08-05 14:55:00 +00:00
2022-08-05 14:55:00 +00:00
2024-08-29 17:31:15 +00:00
2022-04-26 17:57:03 +00:00
2022-03-02 13:41:32 +00:00
2022-08-05 14:55:00 +00:00
2018-08-28 21:18:23 +00:00
2023-09-01 18:44:20 +00:00
2025-08-25 10:50:52 -07:00
2023-06-12 11:56:37 +00:00
2019-02-19 09:12:07 +00:00
2026-03-03 02:01:19 -08:00
2026-03-03 02:01:19 -08:00
2026-09-14 03:21:32 -07:00
2026-09-14 03:21:32 -07:00
2026-04-28 06:27:35 -07:00
2026-09-16 07:03:50 -07:00
2026-09-16 07:03:50 -07:00
2026-07-22 08:08:46 -07:00
2026-06-03 08:29:15 -07:00
2021-01-07 09:00:23 +00:00
2021-01-05 20:11:03 +00:00