[ 
https://issues.apache.org/jira/browse/AMQCPP-423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Timothy Bish closed AMQCPP-423.
-------------------------------

    Resolution: Incomplete

Patches are requires or you can try later versions of clang++ to see if they've 
improved spec compliance.  
                
> Compiling with clang++
> ----------------------
>
>                 Key: AMQCPP-423
>                 URL: https://issues.apache.org/jira/browse/AMQCPP-423
>             Project: ActiveMQ C++ Client
>          Issue Type: New Feature
>          Components: CMS Impl
>    Affects Versions: 3.4.3
>         Environment: Redhat Enterprise Linux Server 6.3
> Clang 3.0
>            Reporter: Steve Pietrowicz
>            Assignee: Timothy Bish
>            Priority: Minor
>
> We're trying to get our entire software stack running under clang.  One of 
> the third party packages we use is ActiveMQCPP.  We're using an older version 
> of the library, which builds, but results in an error when we try to use it 
> (see the last part of this message).
> The ActiveMQCPP 3.4.3 package fails to compile under clang 3.0, first giving 
> many warnings in other files, and then the error in ExecutorService.cpp:
> libtool: compile:  clang++ -DHAVE_CONFIG_H -I. -I../.. -ansi -pedantic 
> -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE 
> -I/lsst/home/srp/clang/lsst_clang/Linux64/external/apr/1.3.3+1/include/apr-1 
> -I/lsst/home/srp/clang/lsst_clang/Linux64/external/apr/1.3.3+1/include/apr-1 
> -W -Wall -Wextra -Wconversion -fPIC -fstrict-aliasing -Wstrict-aliasing=2 
> -Wno-long-long -g -O2 -pthread -MT 
> decaf/util/concurrent/libactivemq_cpp_la-ExecutorService.lo -MD -MP -MF 
> decaf/util/concurrent/.deps/libactivemq_cpp_la-ExecutorService.Tpo -c 
> decaf/util/concurrent/ExecutorService.cpp -o 
> decaf/util/concurrent/libactivemq_cpp_la-ExecutorService.o >/dev/null 2>&1
> In file included from decaf/util/concurrent/Executors.cpp:25:
> In file included from ./decaf/util/concurrent/ThreadPoolExecutor.h:23:
> In file included from ./decaf/util/concurrent/BlockingQueue.h:22:
> In file included from ./decaf/util/AbstractQueue.h:28:
> ./decaf/util/Queue.h:101:19: warning: 
> 'decaf::util::Queue<decaf::lang::Runnable
>       *>::remove' hides overloaded virtual function [-Woverloaded-virtual]
>         virtual E remove() = 0;
>                   ^
> ./decaf/util/AbstractQueue.h:47:34: note: in instantiation of template class
>       'decaf::util::Queue<decaf::lang::Runnable *>' requested here
>     class AbstractQueue : public decaf::util::Queue<E>,
>                                  ^
> ./decaf/util/concurrent/BlockingQueue.h:164:34: note: in instantiation of
>       template class 'decaf::util::AbstractQueue<decaf::lang::Runnable *>'
>       requested here
>     class BlockingQueue : public AbstractQueue<E> {
>                                  ^
> ./decaf/util/concurrent/ThreadPoolExecutor.h:598:45: note: in instantiation of
>       template class
>       'decaf::util::concurrent::BlockingQueue<decaf::lang::Runnable *>'
>       requested here
>                         executer->getQueue()->poll(oldest);
>                                             ^
> ./decaf/util/Collection.h:214:22: note: hidden overloaded virtual function
>       'decaf::util::Collection<decaf::lang::Runnable *>::remove' declared here
>         virtual bool remove( const E& value ) = 0;
>                      ^
> In file included from decaf/util/concurrent/Executors.cpp:28:
> ./decaf/util/concurrent/LinkedBlockingQueue.h:465:27: warning: implicit
>       conversion changes signedness: 'int' to 'size_type' (aka 'unsigned 
> long')
>       [-Wsign-conversion]
>             array.reserve(size);
>             ~~~~~         ^~~~
> decaf/util/concurrent/Executors.cpp:112:28: note: in instantiation of member
>       function
>       'decaf::util::concurrent::LinkedBlockingQueue<decaf::lang::Runnable
>       *>::toArray' requested here
>         backingQ.reset(new LinkedBlockingQueue<Runnable*>());
>                            ^
> In file included from decaf/util/concurrent/Executors.cpp:25:
> In file included from ./decaf/util/concurrent/ThreadPoolExecutor.h:23:
> In file included from ./decaf/util/concurrent/BlockingQueue.h:22:
> ./decaf/util/AbstractQueue.h:63:17: error: use of undeclared identifier 
> 'offer'
>             if( offer( value ) ) {
>                 ^
>                 this->
> decaf/util/concurrent/Executors.cpp:112:28: note: in instantiation of member
>       function 'decaf::util::AbstractQueue<decaf::lang::Runnable *>::add'
>       requested here
>         backingQ.reset(new LinkedBlockingQueue<Runnable*>());
>                            ^
> ./decaf/util/Queue.h:76:22: note: must qualify identifier to find this
>       declaration in dependent base class
>         virtual bool offer( const E& value ) = 0;
>                      ^
> In file included from decaf/util/concurrent/Executors.cpp:18:
> In file included from decaf/util/concurrent/Executors.h:24:
> In file included from ./decaf/util/concurrent/ExecutorService.h:24:
> In file included from ./decaf/util/ArrayList.h:30:
> In file included from ./decaf/util/List.h:27:
> ./decaf/util/AbstractCollection.h:318:33: warning: implicit conversion changes
>       signedness: 'int' to 'size_type' (aka 'unsigned long') 
> [-Wsign-conversion]
>             valueArray.reserve( this->size() );
>             ~~~~~~~~~~          ^~~~~~~~~~~~
> decaf/util/concurrent/Executors.cpp:112:28: note: in instantiation of member
>       function 'decaf::util::AbstractCollection<decaf::lang::Runnable
>       *>::toArray' requested here
>         backingQ.reset(new LinkedBlockingQueue<Runnable*>());
>                            ^
> 5 warnings and 1 error generated.
> Version 3.1.2 of the library compiles, but throws an exception (out of range) 
> on in createConnection in AMQConnectionFactory.
> I wasn't sure how to classify this issue and whether it should be classified 
> as enhancement request.  Is there any plan to support clang in the future?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to