Hi everyone!
With the
args.gn option v8_enable_pointer_compression=true
I found this incongruity in "instance-type-inl.h" function "CheckInstanceMapRange" , the problem is constexpr function call a non-constexpr function:
FAILED: obj/mksnapshot/embedded-file-writer.o
g++ -MD -MF obj/mksnapshot/embedded-file-writer.o.d -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_NONE -D_GLIBCXX_ASSERTIONS=1 -DUSE_UDEV -DUSE_AURA=1 -DUSE_GLIB=1 -DUSE_OZONE=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -DV8_ATOMIC_OBJECT_FIELD_WRITES -DV8_ENABLE_LAZY_SOURCE_POSITIONS -DV8_WIN64_UNWINDING_INFO -DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH -DV8_SHORT_BUILTIN_CALLS -DV8_EXTERNAL_CODE_SPACE -DV8_ENABLE_SPARKPLUG -DV8_ENABLE_MAGLEV -DV8_ENABLE_TURBOFAN -DV8_ENABLE_WEBASSEMBLY -DV8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA -DV8_ALLOCATION_FOLDING -DV8_ALLOCATION_SITE_TRACKING -DV8_ADVANCED_BIGINT_ALGORITHMS -DV8_STATIC_ROOTS -DV8_USE_ZLIB -DV8_ENABLE_WASM_SIMD256_REVEC -DV8_ENABLE_MAGLEV_GRAPH_PRINTER -DV8_ENABLE_BUILTIN_JUMP_TABLE_SWITCH -DV8_ENABLE_EXTENSIBLE_RO_SNAPSHOT -DV8_ENABLE_BLACK_ALLOCATED_PAGES -DV8_ENABLE_LEAPTIERING -DV8_WASM_RANDOM_FUZZERS -DV8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT=0 -DV8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT=0 -DV8_PROMISE_INTERNAL_FIELD_COUNT=0 -DV8_USE_DEFAULT_HASHER_SECRET=true -DV8_COMPRESS_POINTERS -DV8_COMPRESS_POINTERS_IN_SHARED_CAGE -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_HAVE_TARGET_OS -DV8_TARGET_OS_LINUX -DCPPGC_CAGED_HEAP -DCPPGC_YOUNG_GENERATION -DCPPGC_POINTER_COMPRESSION -DCPPGC_ENABLE_LARGER_CAGE -DCPPGC_SLIM_WRITE_BARRIER -DV8_TARGET_ARCH_X64 -DV8_RUNTIME_CALL_STATS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../include -Igen/include -I../../third_party/abseil-cpp -I../../third_party/fp16/src/include -Wall -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-deprecated-declarations -Wno-comments -Wno-packed-not-aligned -Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -fno-strict-overflow -fno-ident -fno-math-errno -fno-strict-aliasing -fstack-protector -funwind-tables -fPIC -pipe -pthread -m64 -msse3 -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -fno-omit-frame-pointer -g0 -Wno-invalid-offsetof -Wno-strict-overflow -Wno-return-type -Wno-int-in-bool-context -Wno-deprecated -Wno-stringop-overflow -Wno-stringop-overread -Wno-restrict -Wno-array-bounds -Wno-nonnull -Wno-dangling-pointer -O3 -fdata-sections -ffunction-sections -fvisibility=default -Wno-narrowing -Wno-class-memaccess -Wno-invalid-offsetof -std=gnu++2a -fno-exceptions -fno-rtti -c ../../src/snapshot/embedded/embedded-file-writer.cc -o obj/mksnapshot/embedded-file-writer.o
In file included from ../../src/objects/heap-object-inl.h:12,
from ../../src/objects/primitive-heap-object-inl.h:12,
from ../../src/objects/heap-number-inl.h:12,
from ../../src/numbers/conversions-inl.h:23,
from ../../src/objects/objects-inl.h:31,
from ../../src/heap/paged-spaces-inl.h:15,
from ../../src/heap/new-spaces-inl.h:15,
from ../../src/heap/heap-inl.h:31,
from ../../src/execution/isolate-utils-inl.h:13,
from ../../src/objects/dictionary-inl.h:13,
from ../../src/objects/contexts-inl.h:14,
from ../../src/execution/isolate-inl.h:11,
from ../../src/heap/memory-chunk-inl.h:11,
from ../../src/heap/heap-layout-inl.h:12,
from ../../src/objects/code-inl.h:14,
from ../../src/snapshot/embedded/embedded-file-writer.cc:12:
../../src/objects/instance-type-inl.h: In function ‘constexpr bool v8::internal::InstanceTypeChecker::CheckInstanceMapRange(TaggedAddressRange, v8::internal::Tagged<v8::internal::Map>)’:
../../src/objects/instance-type-inl.h:194:57: error: call to non-‘constexpr’ function ‘static v8::internal::Tagged_t v8::internal::V8HeapCompressionSchemeImpl<Cage>::CompressObject(v8::internal::Address) [with Cage = v8::internal::MainCage; v8::internal::Tagged_t = unsigned int; v8::internal::Address = long unsigned int]’
194 | Tagged_t ptr = V8HeapCompressionScheme::CompressObject(map.ptr());
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
In file included from ../../src/execution/isolate-utils-inl.h:11:
../../src/common/ptr-compr-inl.h:86:10: note: ‘static v8::internal::Tagged_t v8::internal::V8HeapCompressionSchemeImpl<Cage>::CompressObject(v8::internal::Address) [with Cage = v8::internal::MainCage; v8::internal::Tagged_t = unsigned int; v8::internal::Address = long unsigned int]’ declared here
86 | Tagged_t V8HeapCompressionSchemeImpl<Cage>::CompressObject(Address tagged) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~