incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-89) compilation error on std::lower_bound<Iterator, T>() with Iterator::value_type != T
Date Sat, 31 Dec 2005 01:33:03 GMT
    [ http://issues.apache.org/jira/browse/STDCXX-89?page=comments#action_12361460 ] 

Martin Sebor commented on STDCXX-89:
------------------------------------

Note that the patch only fixes the problem when inline member templates are supported. The
_RWSTD_NO_INLINE_MEMBER_TEMPLATES case (i.e., when member templatesare not supported at all)
is not handled. Since the absence of member template support likely implies the lack of support
for partial template specialization I'm not sure at this point how fix it there.

> compilation error on std::lower_bound<Iterator, T>() with Iterator::value_type
!= T
> -----------------------------------------------------------------------------------
>
>          Key: STDCXX-89
>          URL: http://issues.apache.org/jira/browse/STDCXX-89
>      Project: STDCXX
>         Type: Bug
>   Components: 25. Algorithms
>     Versions: 4.1.3
>  Environment: all
>     Reporter: Duraid Madina
>     Assignee: Martin Sebor
>  Attachments: stdcxx-comparison.patch
>
> On both the released ("incubating") and current subversion trunk versions of stdcxx,
I trip across the following - I think it is your bug: 
> "/home/duraid/stdcxx/include/algorithm.cc", line 1180: error #2304: no instance of function
"__rw::__rw_lt<_TypeT>::operator() [with _Type
> T=std::iterator_traits<__rw::__rw_debug_iter<std::vector<llvm::GlobalValue *,
std::allocator<llvm::GlobalValue *>>, std::vector<llvm::Glob
> alValue *, std::allocator<llvm::GlobalValue *>>::pointer, std::vector<llvm::GlobalValue
*, std::allocator<llvm::GlobalValue *>>::pointer>>
> ::value_type]" matches the argument list
>             argument types are: (std::iterator_traits<__rw::__rw_debug_iter<std::vector<llvm::GlobalValue
*, std::allocator<llvm::GlobalVa
> lue *>>, std::vector<llvm::GlobalValue *, std::allocator<llvm::GlobalValue
*>>::pointer, std::vector<llvm::GlobalValue *, std::allocator<l
> lvm::GlobalValue *>>::pointer>::iterator_type>::value_type, const llvm::GlobalValue
*const)
>             object type is: __rw::__rw_lt<std::iterator_traits<__rw::__rw_debug_iter<std::vector<llvm::GlobalValue
*, std::allocator<llvm:
> :GlobalValue *>>, std::vector<llvm::GlobalValue *, std::allocator<llvm::GlobalValue
*>>::pointer, std::vector<llvm::GlobalValue *, std::al
> locator<llvm::GlobalValue *>>::pointer>>::value_type>
>           if (__comp (*__middle, __val)) {
>               ^
>           detected during instantiation of "_RandomAccessIter std::__lower_bound(_RandomAccessIter,
_RandomAccessIter, const _TypeT &, _Co
> mpare, _Dist *, std::random_access_iterator_tag) [with _RandomAccessIter=__rw::__rw_debug_iter<std::vector<llvm::GlobalValue
*, std::alloc
> ator<llvm::GlobalValue *>>, std::vector<llvm::GlobalValue *, std::allocator<llvm::GlobalValue
*>>::pointer, std::vector<llvm::GlobalValue 
> *, std::allocator<llvm::GlobalValue *>>::pointer>, _TypeT=const llvm::GlobalValue
*, _Compare=__rw::__rw_lt<std::iterator_traits<__rw::__r
> w_debug_iter<std::vector<llvm::GlobalValue *, std::allocator<llvm::GlobalValue
*>>, std::vector<llvm::GlobalValue *, std::allocator<llvm::
> GlobalValue *>>::pointer, std::vector<llvm::GlobalValue *, std::allocator<llvm::GlobalValue
*>>::pointer>>::value_type>, _Dist=std::iterat
> or_traits<__rw::__rw_debug_iter<std::vector<llvm::GlobalValue *, std::allocator<llvm::GlobalValue
*>>, std::vector<llvm::GlobalValue *, st
> d::allocator<llvm::GlobalValue *>>::pointer, std::vector<llvm::GlobalValue
*, std::allocator<llvm::GlobalValue *>>::pointer>>::difference_
> type]"
> Please see http://kinoko.c.u-tokyo.ac.jp/~duraid/stdcxxissues if you want to try and
reproduce this. There, you will find the following files:
> DataStructure.cpp: the code I'm trying to build (it is a part of LLVM, http://www.llvm.org)
> Note: the problem is the const keyword on line 694 (const GlobalValue *V = Src[0]; )
- removing that keyword allows the file to be compiled, but I think the const keyword should
be legal there.
> algorithmcc_bug.i: (preprocessed source: you should be able to compile this with aCC
as follows:
> aCC -D__STDC_LIMIT_MACROS -AA -DNDEBUG -D_RWSTDDEBUG     -D_RWSTD_USE_CONFIG   +d  +w
+W392 +W655 +W684 +W818 +W819 +W849 +W2193 +W2236 +W2261 +W2401 +W2487 +O2  -c algorithmcc_bug.i
> compile_log: what I see when trying to compile DataStructure.cpp with the const keyword
present (grep for the error #2304)
> If you would like an account on the machine where I see this, just let me know!

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message