Hi Ronald,

Our MSVC support is best effort, especially around all this template stuff
where it tends to have slight issues. Usually cases like this are fixable
with a `this->`, would you be willing to upstream a fix?

Cheers,
Leszek

On Fri, Oct 20, 2023 at 9:02 AM 'Ronald Fenner' via v8-dev <
v8-dev@googlegroups.com> wrote:

> I'm trying to build a debug version of the windows static libraries but
> get a error related to some DCHECKS. The errors are:
> ninja -t msvc -e environment.x64 -- "C:\Program Files\Microsoft Visual
> Studio\2022\Community\VC\Tools\MSVC\14.35.32215\bin\Hostx64\x64\cl.exe" /c
> ../../src/maglev/maglev-regalloc.cc
> /Foobj/v8_base_without_compiler_1/maglev-regalloc.obj /nologo /showIncludes
> -DUSE_AURA=1 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS
> -D_HAS_EXCEPTIONS=0 -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE
> -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS
> -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL
> -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX
> -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00
> -DWINVER=0x0A00 -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1
> -D_HAS_ITERATOR_DEBUGGING=0 -DCPPGC_VERIFY_HEAP -DENABLE_DISASSEMBLER
> -DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64 -DOBJECT_PRINT -DVERIFY_HEAP
> -DV8_TRACE_MAPS -DV8_ENABLE_ALLOCATION_TIMEOUT -DV8_ENABLE_FORCE_SLOW_PATH
> -DV8_ENABLE_DOUBLE_CONST_STORE_CHECK -DV8_INTL_SUPPORT
> -DENABLE_HANDLE_ZAPPING -DV8_CODE_COMMENTS -DV8_ENABLE_DEBUG_CODE
> -DV8_ENABLE_HEAP_SNAPSHOT_VERIFY -DV8_SNAPSHOT_NATIVE_CODE_COUNTERS
> -DV8_USE_EXTERNAL_STARTUP_DATA -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_ENABLE_MAGLEV -DV8_ENABLE_TURBOFAN -DV8_ENABLE_SYSTEM_INSTRUMENTATION
> -DV8_ENABLE_ETW_STACK_WALKING -DV8_ENABLE_WEBASSEMBLY
> -DV8_ALLOCATION_FOLDING -DV8_ALLOCATION_SITE_TRACKING
> -DV8_ADVANCED_BIGINT_ALGORITHMS -DV8_USE_ZLIB
> -DV8_ENABLE_WASM_SIMD256_REVEC -DV8_ENABLE_MAGLEV_GRAPH_PRINTER
> -DV8_ENABLE_SLOW_TRACING -DV8_ENABLE_BUILTIN_JUMP_TABLE_SWITCH
> -DV8_ENABLE_EXTENSIBLE_RO_SNAPSHOT -DV8_ENABLE_CHECKS
> -DV8_COMPRESS_POINTERS -DV8_COMPRESS_POINTERS_IN_ISOLATE_CAGE
> -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_DEPRECATION_WARNINGS
> -DV8_IMMINENT_DEPRECATION_WARNINGS -DCPPGC_CAGED_HEAP
> -DCPPGC_YOUNG_GENERATION -DCPPGC_POINTER_COMPRESSION
> -DCPPGC_SLIM_WRITE_BARRIER -DV8_TARGET_ARCH_X64 -DV8_HAVE_TARGET_OS
> -DV8_TARGET_OS_WIN -DDEBUG -DV8_RUNTIME_CALL_STATS
> -DABSL_ALLOCATOR_NOTHROW=1 -D_ENABLE_EXTENDED_ALIGNED_STORAGE
> -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1
> -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0
> -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -I../..
> -Igen -I../../include -Igen/include -I../../third_party/abseil-cpp
> -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n
> -I../../third_party/zlib /wd4244 /WX /Gy /FS /bigobj /utf-8
> /Zc:sizedDealloc- /wd4117 /D__DATE__= /D__TIME__= /D__TIMESTAMP__= /Zi /MTd
> /wd4245 /wd4267 /wd4324 /wd4701 /wd4702 /wd4703 /wd4709 /wd4714 /wd4715
> /wd4718 /wd4723 /wd4724 /wd4800 /wd4506 /wd4091 /wd4127 /wd4251 /wd4275
> /wd4312 /wd4324 /wd4351 /wd4355 /wd4503 /wd4589 /wd4611 /wd4100 /wd4121
> /wd4244 /wd4505 /wd4510 /wd4512 /wd4610 /wd4838 /wd4995 /wd4996 /wd4456
> /wd4457 /wd4458 /wd4459 /wd4200 /wd4201 /wd4204 /wd4221 /wd4245 /wd4267
> /wd4305 /wd4389 /wd4702 /wd4701 /wd4703 /wd4661 /wd4706 /wd4715 /Od /Ob0
> /GF /std:c++20 /TP /GR- /Fd"obj/v8_base_without_compiler_1_cc.pdb"
> C:\Users\dorml\github\v8Dist\v8\src/maglev/maglev-ir.h(2318): error C2352:
> 'v8::internal::maglev::NodeBase::opcode': a call of a non-static member
> function requires an object
> C:\Users\dorml\github\v8Dist\v8\src/maglev/maglev-ir.h(1562): note: see
> declaration of 'v8::internal::maglev::NodeBase::opcode'
> C:\Users\dorml\github\v8Dist\v8\src/maglev/maglev-ir.h(2316): note: This
> diagnostic occurred in the compiler generated function
> 'v8::internal::maglev::NodeTMixin<Base,Derived>::NodeTMixin(uint64_t,Args
> &&...)'
> C:\Users\dorml\github\v8Dist\v8\src/maglev/maglev-ir.h(2321): note: see
> reference to class template instantiation
> 'v8::internal::maglev::NodeTMixin<Base,Derived>' being compiled
> C:\Users\dorml\github\v8Dist\v8\src/maglev/maglev-ir.h(2319): error C2352:
> 'v8::internal::maglev::NodeBase::properties': a call of a non-static member
> function requires an object
> C:\Users\dorml\github\v8Dist\v8\src/maglev/maglev-ir.h(1563): note: see
> declaration of 'v8::internal::maglev::NodeBase::properties'
> C:\Users\dorml\github\v8Dist\v8\src/maglev/maglev-ir.h(2316): note: This
> diagnostic occurred in the compiler generated function
> 'v8::internal::maglev::NodeTMixin<Base,Derived>::NodeTMixin(uint64_t,Args
> &&...)'
> C:\Users\dorml\github\v8Dist\v8\src/maglev/maglev-ir.h(2386): error C2352:
> 'v8::internal::maglev::NodeBase::input_count': a call of a non-static
> member function requires an object
> C:\Users\dorml\github\v8Dist\v8\src/maglev/maglev-ir.h(1589): note: see
> declaration of 'v8::internal::maglev::NodeBase::input_count'
> C:\Users\dorml\github\v8Dist\v8\src/maglev/maglev-ir.h(2384): note: This
> diagnostic occurred in the compiler generated function
> 'v8::internal::maglev::FixedInputNodeTMixin<InputCount,Base,Derived>::FixedInputNodeTMixin(uint64_t,Args
> &&...)'
> C:\Users\dorml\github\v8Dist\v8\src/maglev/maglev-ir.h(2388): note: see
> reference to class template instantiation
> 'v8::internal::maglev::FixedInputNodeTMixin<InputCount,Base,Derived>' being
> compiled
>
> Looking at the DCHECKS it seems instead of NodeBase it should be calling
> Base since these are in templated functions.
> 2 of the DCHECKS failing and their function
>   template <typename... Args>
>   explicit NodeTMixin(uint64_t bitfield, Args&&... args)
>       : Base(bitfield, std::forward<Args>(args)...) {
>     DCHECK_EQ(NodeBase::opcode(), NodeBase::opcode_of<Derived>);
>     DCHECK_EQ(NodeBase::properties(), Derived::kProperties);
>   }
>
> Not sure if i should just commit them out or switch them to Base to get
> the build to work.
>
> --
> --
> v8-dev mailing list
> v8-dev@googlegroups.com
> http://groups.google.com/group/v8-dev
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to v8-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/v8-dev/0f6c5714-c77b-48d7-a40c-0096ba2b527cn%40googlegroups.com
> <https://groups.google.com/d/msgid/v8-dev/0f6c5714-c77b-48d7-a40c-0096ba2b527cn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
-- 
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/CAGRskv_-jKDPV4%3DOTF4PTSJb0dGzkZCP7kOLMtvomuNVVyHeYQ%40mail.gmail.com.

Reply via email to