[LLVMdev] MINGW Compiler error.

Kenneth Boyd zaimoni at zaimoni.com
Tue Oct 14 20:21:58 PDT 2008


Mark Kromis wrote:
> Resend
>
>
> On Oct 14, 2008, at 5:40 AM, Mark Kromis wrote:
>
>   
>> Greetings,
>>
>> I have a compiler error that I have not been able to get through. I  
>> usually depend upon pre-built binaries but there was none available  
>> for the pre-release. I also try scanning the web site and mail list  
>> but was unable to find an answer. I was getting this or similar  
>> error with 2.3. I am just trying to build with the core library. I  
>> tried this in a xp and vista VM with the same results, I have  
>> Leopard, and was hoping to use this for similar build environment. I  
>> use eclipse/CDT for development on windows.
>>
>> Built with "C:/MinGW/bin/sh.exe"-2.04$ ./configure --prefix=/usr -- 
>> enable-optimized --disa
>> ble-shared --disable-multilib --disable-asserts
>>     
Ok...I would have expected that to suppress the following error:
>> output:
>> llvm[1]: Compiling BasicBlock.cpp for Release build
>> c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
>> boost_concept_check.h: In
>> member function 'bool __gnu_cxx::_EqualOpConcept<_First,  
>> _Second>::__constraint
>> s_() [with _First = llvm::BasicBlock, _Second = llvm::BasicBlock*]':
>> c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
>> boost_concept_check.h:296
>> :   instantiated from 'void __gnu_cxx::_EqualOpConcept<_First,  
>> _Second>::__const
>> raints() [with _First = llvm::BasicBlock, _Second =  
>> llvm::BasicBlock*]'
>> c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
>> boost_concept_check.h:62:
>>   instantiated from 'void __gnu_cxx::__function_requires() [with  
>> _Concept = __g
>> nu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>]'
>> c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/stl_algo.h: 
>> 3810:   instan
>> tiated from '_IIter std::find(_IIter, _IIter, const _Tp&) [with  
>> _IIter = llvm::P
>> redIterator<llvm::BasicBlock, llvm::value_use_iterator<llvm::User>  
>>     
>>> , _Tp = llvm
>>>       
>> ::BasicBlock*]'
>> BasicBlock.cpp:180:   instantiated from here
>> c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
>> boost_concept_check.h:296
>> : error: no match for 'operator==' in  
>> '((__gnu_cxx::_EqualOpConcept<llvm::BasicB
>> lock, llvm::BasicBlock*>*)this)- 
>>     
>>> __gnu_cxx::_EqualOpConcept<llvm::BasicBlock, ll
>>>       
>> vm::BasicBlock*>::__a ==  
>> ((__gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::Ba
>> sicBlock*>*)this)->__gnu_cxx::_EqualOpConcept<llvm::BasicBlock,  
>> llvm::BasicBlock
>> *>::__b'
>> c:/Users/Greybird/Desktop/llvm/llvm-2.4/include/llvm/ADT/APInt.h: 
>>     
BasicBlock is failing the EqualityComparable concept check.  This should 
be breaking --enable-asserts and --enable-expensive-checks, not 
--enable-optimized (concept checks should be disabled in release mode, 
which is controlled by NDEBUG).
>> 1379: note: can
>> didates are: bool llvm::operator==(uint64_t, const llvm::APInt&)
>> make[1]: *** [/c/Users/Greybird/Desktop/llvm/llvm-2.4/lib/VMCore/ 
>> Release/BasicBl
>> ock.o] Error 1
>> make[1]: Leaving directory `/c/Users/Greybird/Desktop/llvm/llvm-2.4/ 
>> lib/VMCore'
>> make: *** [all] Error 1
>>     
GCC 4.3.0 is not finding the equality operator suitable for comparing 
these; the implied STL invocation would be buggy.

I don't think I'll be able to take a close look at this tonight (I have 
MingW32 3.4.5 and MingW32 4.2.1 ready, not MingW32 4.3.0).

Kenneth




More information about the llvm-dev mailing list