May 06, 2014
Tried again with default compiler options but same result for tested Release and ReleaseWithDebInfo configs.

cmake.exe -G "Visual Studio 12 Win64" -DCMAKE_INSTALL_PREFIX=.../llvm/installed -DLLVM_TARGETS_TO_BUILD=X86
-DLLVM_BUILD_TOOLS=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_APPEND_VC_REV=ON -DCMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO="/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF" -DCMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO="/DEBUG /INCREMENTAL:NO /OPT:REF /OPT:ICF" ..

cmake.exe -G "Visual Studio 12 Win64" -DCMAKE_INSTALL_PREFIX=.../ldc -DLLVM_ROOT_DIR=.../llvm/installed -DLIBCONFIG++_INCLUDE_DIR=../libconfig-1.4.9/lib -DLIBCONFIG++_LIBRARY="../libconfig-1.4.9/x64/Release/libconfig++.lib" ..

Generating src/core/atomic.obj
Assertion failed: List && "Handle list is null?", file ..\..\..\lib\IR\Value.cpp, line 528
Generating std/algorithm-debug.obj
Assertion failed: !N->getContext().pImpl->MDNodeSet.RemoveNode(N) && "Deleting a non-temporary uniqued node!", file ..\..\..\lib\IR\Metadata.cpp, line 296
May 07, 2014
Hi Trass3r!

On Tuesday, 6 May 2014 at 12:35:17 UTC, Trass3r wrote:
>
> Generating src/core/atomic.obj
> Assertion failed: List && "Handle list is null?", file ..\..\..\lib\IR\Value.cpp, line 528
> Generating std/algorithm-debug.obj
> Assertion failed: !N->getContext().pImpl->MDNodeSet.RemoveNode(N) && "Deleting a non-temporary uniqued node!", file ..\..\..\lib\IR\Metadata.cpp, line 296

Now I can trigger the second assertion failure. Seems to have something to do with recent changes in debug symbol generation.

My configuration is:
cmake -G "Visual Studio 11 Win64" -DCMAKE_INSTALL_PREFIX="D:/Program Files/LLVM-x64" -DCMAKE_BUILD_TYPE=Debug -DPYTHON_EXECUTABLE="C:/Program Files/Python/Python33/python.exe" -DLLVM_TARGETS_TO_BUILD="X86;ARM;PowerPC;Mips;Sparc;CppBackend" -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_BUILD_TESTS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_ENABLE_ZLIB=OFF D:/OpenSource/LLVM/LLVM-git


cmake -G "Visual Studio 11 Win64" -DCMAKE_INSTALL_PREFIX="D:\Program Files\LDC" -DCMAKE_BUILD_TYPE=Debug -DLLVM_ROOT_DIR="D:/Program Files/LLVM-x64" -DLIBCONFIG++_INCLUDE_DIR="D:/OpenSource/libconfig-1.4.9/lib" -DLIBCONFIG++_LIBRARY="D:/OpenSource/libconfig-1.4.9/x64/Debug/libconfig++.lib" ..\ldc

Regards,
Kai
May 07, 2014
On Wednesday, 7 May 2014 at 05:18:12 UTC, Kai Nacke wrote:
> Now I can trigger the second assertion failure. Seems to have something to do with recent changes in debug symbol generation.
>
> My configuration is:
> cmake -G "Visual Studio 11 Win64" -DCMAKE_INSTALL_PREFIX="D:/Program Files/LLVM-x64" -DCMAKE_BUILD_TYPE=Debug

Yeah in debug mode only the second one triggers (which was indeed introduced recently). In release mode I get the other assertion:

>	ldc2.exe!llvm::ValueHandleBase::AddToExistingUseList(llvm::ValueHandleBase * * List=0x00000000001ff440) Line 531	C++
 	ldc2.exe!llvm::scc_iterator<llvm::CallGraph * __ptr64,llvm::GraphTraits<llvm::CallGraph * __ptr64> >::DFSVisitChildren() Line 158	C++
 	ldc2.exe!llvm::scc_iterator<llvm::CallGraph * __ptr64,llvm::GraphTraits<llvm::CallGraph * __ptr64> >::GetNextSCC() Line 179	C++
 	ldc2.exe!llvm::scc_begin<llvm::CallGraph * __ptr64>(llvm::CallGraph * const & G=0x00000000024f7e70) Line 225	C++
 	ldc2.exe!`anonymous namespace'::CGPassManager::runOnModule(llvm::Module & M={...}) Line 434	C++
 	ldc2.exe!`anonymous namespace'::MPPassManager::runOnModule(llvm::Module & M={...}) Line 1625	C++
 	ldc2.exe!llvm::legacy::PassManagerImpl::run(llvm::Module & M={...}) Line 1734	C++
 	ldc2.exe!ldc_optimize_module(llvm::Module * M=0x0000000000000023) Line 400	C++
 	ldc2.exe!writeModule(llvm::Module * m=0x0000000000000000, std::basic_string<char,std::char_traits<char>,std::allocator<char> > filename={...}) Line 133	C++
 	ldc2.exe!main(int argc=0, char * * argv=0x0000000000000000) Line 1279	C++
May 08, 2014
with /d2Zi+ the stack trace is better:

llvm::ValueHandleBase::AddToExistingUseList(llvm::ValueHandleBase** List=0) Line 531
llvm::scc_iterator<llvm::CallGraph*,llvm::GraphTraits<llvm::CallGraph*> >::DFSVisitChildren() Line 158
llvm::scc_iterator<llvm::CallGraph*,llvm::GraphTraits<llvm::CallGraph*> >::GetNextSCC() Line 179
`anonymous namespace'::CGPassManager::runOnModule(llvm::Module & M=<struct at NULL>) Line 434
`anonymous namespace'::MPPassManager::runOnModule(llvm::Module & M={...}) Line 1625
llvm::legacy::PassManagerImpl::run(llvm::Module & M={...}) Line 1734
ldc_optimize_module(llvm::Module* M=0x00000000024a6d20) Line 400

But it still makes no sense. In MPPassManager::runOnModule M looks fine and then in CGPassManager::runOnModule it's allegedly null.
1 2
Next ›   Last »