[
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