Skip to content

Commit 870faee

Browse files
committed
deps: workaround clang-3.4 ICE
PR-URL: #8343 Fixes: #8323 Reviewed-By: rvagg - Rod Vagg <[email protected]>
1 parent 266270e commit 870faee

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

deps/v8/include/v8-version.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#define V8_MAJOR_VERSION 5
1212
#define V8_MINOR_VERSION 1
1313
#define V8_BUILD_NUMBER 281
14-
#define V8_PATCH_LEVEL 81
14+
#define V8_PATCH_LEVEL 82
1515

1616
// Use 1 for candidates and 0 otherwise.
1717
// (Boolean macro values are not supported by all preprocessors.)

deps/v8/src/heap/mark-compact.cc

+12-2
Original file line numberDiff line numberDiff line change
@@ -3496,10 +3496,20 @@ int NumberOfPointerUpdateTasks(int pages) {
34963496

34973497
template <PointerDirection direction>
34983498
void UpdatePointersInParallel(Heap* heap, base::Semaphore* semaphore) {
3499+
// Work-around bug in clang-3.4
3500+
// https://github.com/nodejs/node/issues/8323
3501+
struct MemoryChunkVisitor {
3502+
PageParallelJob<PointerUpdateJobTraits<direction> >& job_;
3503+
MemoryChunkVisitor(PageParallelJob<PointerUpdateJobTraits<direction> >& job)
3504+
: job_(job) {}
3505+
void operator()(MemoryChunk* chunk) {
3506+
job_.AddPage(chunk, 0);
3507+
}
3508+
};
3509+
34993510
PageParallelJob<PointerUpdateJobTraits<direction> > job(
35003511
heap, heap->isolate()->cancelable_task_manager(), semaphore);
3501-
RememberedSet<direction>::IterateMemoryChunks(
3502-
heap, [&job](MemoryChunk* chunk) { job.AddPage(chunk, 0); });
3512+
RememberedSet<direction>::IterateMemoryChunks(heap, MemoryChunkVisitor(job));
35033513
PointersUpdatingVisitor visitor(heap);
35043514
int num_pages = job.NumberOfPages();
35053515
int num_tasks = NumberOfPointerUpdateTasks(num_pages);

0 commit comments

Comments
 (0)