Windows, VS2017, x64

Here is what seems to be the most basic failure of Cling.

What am I doing wrong?

Assertion and Dump
E:\git\Cling\inst\bin>cling.exe

****************** CLING ******************
* Type C++ code and press enter to run it *
*             Type .q to exit             *
*******************************************
[cling]$ #include <iostream>
In file included from input_line_3:1:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\iostream:6:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\istream:6:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\ostream:6:
In file included from C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\ios:6:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xlocnum:195:8: warning: explicit specialization of '_Getvals' within class scope is a Microsoft extension [-Wmicrosoft-template]
                void _Getvals(wchar_t, const lconv *_Ptr, _Locinfo::_Cvtvec)
                     ^
[cling]$ std::cout << "A few words" << std::endl;
Assertion failed: &*BB.begin() == PadInst && "WinEHPrepare failed to remove PHIs from imaginary BBs", file E:\git\Cling\src\lib\CodeGen\SelectionDAG\FunctionLoweringInfo.cpp, line 239
Wrote crash dump file "C:\Users\v-adbrya\AppData\Local\Temp\cling.exe-d4cbd5.dmp"
#0 0x00007ff767888b6c (E:\git\Cling\inst\bin\cling.exe+0x9c8b6c)
#1 0x00007ffc5d3bfe21 (C:\Windows\SYSTEM32\ucrtbased.dll+0x7fe21)
#2 0x00007ffc5d3c1979 (C:\Windows\SYSTEM32\ucrtbased.dll+0x81979)
#3 0x00007ffc5d3c73f5 (C:\Windows\SYSTEM32\ucrtbased.dll+0x873f5)
#4 0x00007ffc5d3c6f37 (C:\Windows\SYSTEM32\ucrtbased.dll+0x86f37)
#5 0x00007ffc5d3c4fc1 (C:\Windows\SYSTEM32\ucrtbased.dll+0x84fc1)
#6 0x00007ffc5d3c77bf (C:\Windows\SYSTEM32\ucrtbased.dll+0x877bf)
#7 0x00007ff76c7e08a9 (E:\git\Cling\inst\bin\cling.exe+0x59208a9)
#8 0x00007ff76c6060d6 (E:\git\Cling\inst\bin\cling.exe+0x57460d6)
#9 0x00007ff76be5a848 (E:\git\Cling\inst\bin\cling.exe+0x4f9a848)
#10 0x00007ff76ca1b0e7 (E:\git\Cling\inst\bin\cling.exe+0x5b5b0e7)
#11 0x00007ff76f5f483e (E:\git\Cling\inst\bin\cling.exe+0x873483e)
#12 0x00007ff76f5f4a85 (E:\git\Cling\inst\bin\cling.exe+0x8734a85)
#13 0x00007ff76f5f5f3c (E:\git\Cling\inst\bin\cling.exe+0x8735f3c)
#14 0x00007ff76f5f6861 (E:\git\Cling\inst\bin\cling.exe+0x8736861)
#15 0x00007ff76f5ef5d6 (E:\git\Cling\inst\bin\cling.exe+0x872f5d6)
#16 0x00007ff7677009aa (E:\git\Cling\inst\bin\cling.exe+0x8409aa)
#17 0x00007ff7676de68e (E:\git\Cling\inst\bin\cling.exe+0x81e68e)
#18 0x00007ff7676eec7e (E:\git\Cling\inst\bin\cling.exe+0x82ec7e)
#19 0x00007ff7676e4f42 (E:\git\Cling\inst\bin\cling.exe+0x824f42)
#20 0x00007ff767704753 (E:\git\Cling\inst\bin\cling.exe+0x844753)
#21 0x00007ff7676ff842 (E:\git\Cling\inst\bin\cling.exe+0x83f842)
#22 0x00007ff7676e81f6 (E:\git\Cling\inst\bin\cling.exe+0x8281f6)
#23 0x00007ff76770cde7 (E:\git\Cling\inst\bin\cling.exe+0x84cde7)
#24 0x00007ff7676fed46 (E:\git\Cling\inst\bin\cling.exe+0x83ed46)
#25 0x00007ff7676de4f0 (E:\git\Cling\inst\bin\cling.exe+0x81e4f0)
#26 0x00007ff7676eeaf0 (E:\git\Cling\inst\bin\cling.exe+0x82eaf0)
#27 0x00007ff7676e5074 (E:\git\Cling\inst\bin\cling.exe+0x825074)
#28 0x00007ff7677045c5 (E:\git\Cling\inst\bin\cling.exe+0x8445c5)
#29 0x00007ff7676c0034 (E:\git\Cling\inst\bin\cling.exe+0x800034)
#30 0x00007ff7676d554f (E:\git\Cling\inst\bin\cling.exe+0x81554f)
#31 0x00007ff7676d5971 (E:\git\Cling\inst\bin\cling.exe+0x815971)
#32 0x00007ff767747420 (E:\git\Cling\inst\bin\cling.exe+0x887420)
#33 0x00007ff76775ff0c (E:\git\Cling\inst\bin\cling.exe+0x89ff0c)
#34 0x00007ff7677331be (E:\git\Cling\inst\bin\cling.exe+0x8731be)
#35 0x00007ff767732b8d (E:\git\Cling\inst\bin\cling.exe+0x872b8d)
#36 0x00007ff767735f45 (E:\git\Cling\inst\bin\cling.exe+0x875f45)
#37 0x00007ff76784b318 (E:\git\Cling\inst\bin\cling.exe+0x98b318)
#38 0x00007ff767982639 (E:\git\Cling\inst\bin\cling.exe+0xac2639)
#39 0x00007ff767327c52 (E:\git\Cling\inst\bin\cling.exe+0x467c52)
#40 0x00007ff76f9bf154 (E:\git\Cling\inst\bin\cling.exe+0x8aff154)
#41 0x00007ff76f9bf017 (E:\git\Cling\inst\bin\cling.exe+0x8aff017)
#42 0x00007ff76f9beede (E:\git\Cling\inst\bin\cling.exe+0x8afeede)
#43 0x00007ff76f9bf179 (E:\git\Cling\inst\bin\cling.exe+0x8aff179)
#44 0x00007ffc8d972774 (C:\Windows\System32\KERNEL32.DLL+0x12774)
#45 0x00007ffc8dab0d51 (C:\Windows\SYSTEM32\ntdll.dll+0x70d51)
CMake build line
cmake -DCMAKE_INSTALL_PREFIX=../inst -DCMAKE_BUILD_TYPE=Debug -DCMAKE_GENERATOR="Visual Studio 15 2017 Win64" -LLVM_TARGETS_TO_BUILD="x86_64" -Thost=x64  ../src

*Note: I have tried a few variations of this like building for VS2015, Debug, Release, etc...*
CMake Cache
-- Cache values
BUG_REPORT_URL:STRING=http://llvm.org/bugs/
BUILD_CLANG_FORMAT_VS_PLUGIN:BOOL=OFF
BUILD_SHARED_LIBS:BOOL=OFF
CLANG_ANALYZER_BUILD_Z3:BOOL=OFF
CLANG_BUILD_EXAMPLES:BOOL=OFF
CLANG_BUILD_TOOLS:BOOL=ON
CLANG_DEFAULT_CXX_STDLIB:STRING=
CLANG_DEFAULT_LINKER:STRING=
CLANG_DEFAULT_OPENMP_RUNTIME:STRING=libomp
CLANG_DEFAULT_RTLIB:STRING=
CLANG_ENABLE_ARCMT:BOOL=ON
CLANG_ENABLE_STATIC_ANALYZER:BOOL=ON
CLANG_INCLUDE_DOCS:BOOL=ON
CLANG_INCLUDE_TESTS:BOOL=ON
CLANG_INSTALL_SCANBUILD:BOOL=ON
CLANG_INSTALL_SCANVIEW:BOOL=ON
CLANG_PLUGIN_SUPPORT:BOOL=ON
CLANG_REPOSITORY_STRING:STRING=
CLANG_RESOURCE_DIR:STRING=
CLANG_TABLEGEN:STRING=clang-tblgen
CLANG_TEST_USE_VG:BOOL=OFF
CLANG_VENDOR:STRING=
CLANG_VENDOR_UTI:STRING=org.llvm.clang
CLING_INCLUDE_DOCS:BOOL=ON
CLING_INCLUDE_TESTS:BOOL=ON
CLING_ORDER_FILE:FILEPATH=
CLING_TEST_USE_VG:BOOL=OFF
CMAKE_BUILD_TYPE:STRING=Release
CMAKE_CONFIGURATION_TYPES:STRING=Debug;Release;MinSizeRel;RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=E:/git/Cling/inst
C_INCLUDE_DIRS:STRING=
DEFAULT_SYSROOT:PATH=
DL_LIBRARY_PATH:FILEPATH=DL_LIBRARY_PATH-NOTFOUND
DTRACE:FILEPATH=DTRACE-NOTFOUND
ENABLE_LINKER_BUILD_ID:BOOL=OFF
ENABLE_X86_RELAX_RELOCATIONS:BOOL=OFF
FFI_INCLUDE_DIR:PATH=
FFI_LIBRARY_DIR:PATH=
GCC_INSTALL_PREFIX:PATH=
GOLD_EXECUTABLE:FILEPATH=GOLD_EXECUTABLE-NOTFOUND
LIBCLANG_BUILD_STATIC:BOOL=OFF
LIBCLING_BUILD_STATIC:BOOL=OFF
LIT_COMMAND:STRING=C:/Program Files (x86)/Python36-32/python.exe;E:/git/Cling/src/utils/lit/lit.py
LLVM_ABI_BREAKING_CHECKS:STRING=WITH_ASSERTS
LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION:BOOL=ON
LLVM_APPEND_VC_REV:BOOL=OFF
LLVM_BINUTILS_INCDIR:PATH=
LLVM_BUILD_DOCS:BOOL=OFF
LLVM_BUILD_EXAMPLES:BOOL=OFF
LLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=OFF
LLVM_BUILD_GLOBAL_ISEL:BOOL=ON
LLVM_BUILD_LLVM_C_DYLIB:BOOL=OFF
LLVM_BUILD_LLVM_DYLIB:BOOL=OFF
LLVM_BUILD_RUNTIME:BOOL=ON
LLVM_BUILD_RUNTIMES:BOOL=ON
LLVM_BUILD_TESTS:BOOL=OFF
LLVM_BUILD_TOOLS:BOOL=ON
LLVM_BUILD_UTILS:BOOL=ON
LLVM_CCACHE_BUILD:BOOL=OFF
LLVM_COMPILER_JOBS:STRING=0
LLVM_DEFAULT_TARGET_TRIPLE:STRING=x86_64-pc-win32
LLVM_DEPENDENCY_DEBUGGING:BOOL=OFF
LLVM_DYLIB_COMPONENTS:STRING=all
LLVM_DYLIB_SYMBOL_VERSIONING:BOOL=OFF
LLVM_ENABLE_ASSERTIONS:BOOL=OFF
LLVM_ENABLE_BACKTRACES:BOOL=ON
LLVM_ENABLE_CRASH_OVERRIDES:BOOL=ON
LLVM_ENABLE_CXX1Y:BOOL=OFF
LLVM_ENABLE_DAGISEL_COV:BOOL=OFF
LLVM_ENABLE_DIA_SDK:BOOL=OFF
LLVM_ENABLE_DOXYGEN:BOOL=OFF
LLVM_ENABLE_EH:BOOL=OFF
LLVM_ENABLE_EXPENSIVE_CHECKS:BOOL=OFF
LLVM_ENABLE_FFI:BOOL=OFF
LLVM_ENABLE_LIBCXX:BOOL=OFF
LLVM_ENABLE_LIBEDIT:BOOL=ON
LLVM_ENABLE_LLD:BOOL=OFF
LLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY:BOOL=ON
LLVM_ENABLE_LTO:STRING=OFF
LLVM_ENABLE_MODULES:BOOL=OFF
LLVM_ENABLE_MODULE_DEBUGGING:BOOL=OFF
LLVM_ENABLE_OCAMLDOC:BOOL=ON
LLVM_ENABLE_PEDANTIC:BOOL=ON
LLVM_ENABLE_PIC:BOOL=ON
LLVM_ENABLE_PROJECTS:STRING=
LLVM_ENABLE_RTTI:BOOL=OFF
LLVM_ENABLE_SPHINX:BOOL=OFF
LLVM_ENABLE_TERMINFO:BOOL=ON
LLVM_ENABLE_THREADS:BOOL=ON
LLVM_ENABLE_WARNINGS:BOOL=ON
LLVM_ENABLE_WERROR:BOOL=OFF
LLVM_ENABLE_ZLIB:BOOL=ON
LLVM_EXPERIMENTAL_TARGETS_TO_BUILD:STRING=
LLVM_EXPORT_SYMBOLS_FOR_PLUGINS:BOOL=OFF
LLVM_EXTERNALIZE_DEBUGINFO:BOOL=OFF
LLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR:PATH=
LLVM_EXTERNAL_COMPILER_RT_SOURCE_DIR:PATH=
LLVM_EXTERNAL_DRAGONEGG_SOURCE_DIR:PATH=
LLVM_EXTERNAL_LLDB_SOURCE_DIR:PATH=
LLVM_EXTERNAL_LLD_SOURCE_DIR:PATH=
LLVM_EXTERNAL_LLGO_SOURCE_DIR:PATH=
LLVM_EXTERNAL_OPENMP_SOURCE_DIR:PATH=
LLVM_EXTERNAL_PARALLEL_LIBS_SOURCE_DIR:PATH=
LLVM_FORCE_USE_OLD_HOST_TOOLCHAIN:BOOL=OFF
LLVM_HOST_TRIPLE:STRING=x86_64-pc-win32
LLVM_INCLUDE_DOCS:BOOL=ON
LLVM_INCLUDE_EXAMPLES:BOOL=ON
LLVM_INCLUDE_GO_TESTS:BOOL=ON
LLVM_INCLUDE_RUNTIMES:BOOL=ON
LLVM_INCLUDE_TESTS:BOOL=ON
LLVM_INCLUDE_TOOLS:BOOL=ON
LLVM_INCLUDE_UTILS:BOOL=ON
LLVM_INSTALL_DOXYGEN_HTML_DIR:STRING=share/doc/llvm/doxygen-html
LLVM_INSTALL_OCAMLDOC_HTML_DIR:STRING=share/doc/llvm/ocaml-html
LLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF
LLVM_INSTALL_UTILS:BOOL=OFF
LLVM_LIBDIR_SUFFIX:STRING=
LLVM_LINK_LLVM_DYLIB:BOOL=OFF
LLVM_LIT_ARGS:STRING=-sv --no-progress-bar
LLVM_LIT_TOOLS_DIR:PATH=
LLVM_OPTIMIZED_TABLEGEN:BOOL=OFF
LLVM_PARALLEL_COMPILE_JOBS:STRING=
LLVM_PARALLEL_LINK_JOBS:STRING=
LLVM_POLLY_BUILD:BOOL=ON
LLVM_POLLY_LINK_INTO_TOOLS:BOOL=ON
LLVM_PROFDATA_FILE:FILEPATH=
LLVM_PTHREAD_LIBRARY_PATH:FILEPATH=LLVM_PTHREAD_LIBRARY_PATH-NOTFOUND
LLVM_SRPM_USER_BINARY_SPECFILE:FILEPATH=E:/git/Cling/src/llvm.spec.in
LLVM_TABLEGEN:STRING=llvm-tblgen
LLVM_TARGETS_TO_BUILD:STRING=all
LLVM_TARGET_ARCH:STRING=host
LLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD:BOOL=OFF
LLVM_TOOL_COMPILER_RT_BUILD:BOOL=OFF
LLVM_TOOL_DRAGONEGG_BUILD:BOOL=OFF
LLVM_TOOL_LLDB_BUILD:BOOL=OFF
LLVM_TOOL_LLD_BUILD:BOOL=OFF
LLVM_TOOL_LLGO_BUILD:BOOL=OFF
LLVM_TOOL_OPENMP_BUILD:BOOL=OFF
LLVM_TOOL_PARALLEL_LIBS_BUILD:BOOL=OFF
LLVM_USE_CRT_DEBUG:STRING=MDd
LLVM_USE_CRT_MINSIZEREL:STRING=MD
LLVM_USE_CRT_RELEASE:STRING=MD
LLVM_USE_CRT_RELWITHDEBINFO:STRING=MD
LLVM_USE_FOLDERS:BOOL=ON
LLVM_USE_INTEL_JITEVENTS:BOOL=OFF
LLVM_USE_OPROFILE:BOOL=OFF
LLVM_USE_SANITIZER:STRING=
LLVM_USE_SPLIT_DWARF:BOOL=OFF
LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO:BOOL=ON
ROOT_CLASSIC:BOOL=OFF
TOOL_INFO_PLIST:STRING=Info.plist
Z3_EXECUTABLE:FILEPATH=Z3_EXECUTABLE-NOTFOUND
git_executable:FILEPATH=C:/Program Files/Git/cmd/git.exe

O that’s too bad… But we don’t really support Windows yet, though I do appreciate your heads up!

Simple things like printf("works: %d\n", 42) work, right?

1 Like

Oh no, I thought Windows Cling was supported now. My mistake, last time I tried was back in 2013.
Yes, the code you supplied functions.

Also, didn’t mean to sound accusatory at all. I assumed I was doing something incorrectly, rather than Cling didn’t support Windows. “Basic failure” in this context, was intended to mean that my build literally couldn’t do anything, so am I building something incorrectly." Hope I didn’t offend.

I thought that since Clang’s support for windows had improved so much that Cling was matching them. (All the code I’ve tested compiles through Clang.)

Is there a roadmap? :slight_smile:
Thanks,

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.