Incubaid / crakoon

A C client for Arakoon
Other
2 stars 4 forks source link

C++ bindings build fails using Clang 3.1 #8

Closed NicolasT closed 11 years ago

NicolasT commented 11 years ago

Build of the arakoonmm C++ module fails when using Clang 3.1, but succeeds using GCC 4.7.2:

$ make
...
/bin/sh ../libtool  --tag=CXX   --mode=compile clang++ -DHAVE_CONFIG_H -I. -I..   -DARAKOON_ASSERT=1 -DCRAKOON_MAJOR_VERSION=1 -DCRAKOON_MINOR_VERSION=1 -DCRAKOON_MICRO_VERSION=1 -DCRAKOON_VERSION=1.1.1 -DCRAKOON_GIT_VERSION=heads/1.2-0-gdb71dd4  -std=c++0x -g -O2 -Wall -Wextra -Werror -Wswitch-enum -g -O2 -MT libarakoonmm_1_0_la-arakoonmm.lo -MD -MP -MF .deps/libarakoonmm_1_0_la-arakoonmm.Tpo -c -o libarakoonmm_1_0_la-arakoonmm.lo `test -f 'arakoonmm.cpp' || echo './'`arakoonmm.cpp
libtool: compile:  clang++ -DHAVE_CONFIG_H -I. -I.. -DARAKOON_ASSERT=1 -DCRAKOON_MAJOR_VERSION=1 -DCRAKOON_MINOR_VERSION=1 -DCRAKOON_MICRO_VERSION=1 -DCRAKOON_VERSION=1.1.1 -DCRAKOON_GIT_VERSION=heads/1.2-0-gdb71dd4 -std=c++0x -g -O2 -Wall -Wextra -Werror -Wswitch-enum -g -O2 -MT libarakoonmm_1_0_la-arakoonmm.lo -MD -MP -MF .deps/libarakoonmm_1_0_la-arakoonmm.Tpo -c arakoonmm.cpp  -fPIC -DPIC -o .libs/libarakoonmm_1_0_la-arakoonmm.o
In file included from arakoonmm.cpp:29:
./arakoonmm.hpp:269:35: error: type 'const buffer_ptr' (aka 'const
      shared_ptr<arakoon::buffer>') does not provide a call operator
    buffer_ptr const buffer_ptr = buffer_ptr());
                                  ^~~~~~~~~~
arakoonmm.cpp:138:5: error: no matching function for call to 'rc_to_error'
    rc_to_error(arakoon_memory_set_hooks(hooks));
    ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:241:5: error: no matching function for call to 'rc_to_error'
    rc_to_error(arakoon_value_list_iter_reset(iter_));
    ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:250:5: error: no matching function for call to 'rc_to_error'
    rc_to_error(arakoon_value_list_iter_next(iter_, &value_size, &value_data));
    ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:302:5: error: no matching function for call to 'rc_to_error'
    rc_to_error(arakoon_value_list_add(list_, value.size(), value.data()));
    ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:371:5: error: no matching function for call to 'rc_to_error'
    rc_to_error(arakoon_key_value_list_iter_reset(iter_));
    ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:382:5: error: no matching function for call to 'rc_to_error'
    rc_to_error(arakoon_key_value_list_iter_next(iter_, &key_size,...
    ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:487:5: error: no matching function for call to 'rc_to_error'
    rc_to_error(arakoon_sequence_add_set(sequence_, key.size(),...
    ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:494:5: error: no matching function for call to 'rc_to_error'
    rc_to_error(arakoon_sequence_add_delete(sequence_, key.size(), key.data()));
    ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:502:5: error: no matching function for call to 'rc_to_error'
    rc_to_error(arakoon_sequence_add_assert(sequence_, key.size(),...
    ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:538:5: error: no matching function for call to 'rc_to_error'
    rc_to_error(arakoon_client_call_options_set_allow_dirty(options_,...
    ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:551:5: error: no matching function for call to 'rc_to_error'
    rc_to_error(arakoon_client_call_options_set_timeout(options_, timeout));
    ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:589:9: error: no matching function for call to 'rc_to_error'
        rc_to_error(arakoon_cluster_node_add_address_tcp(node_,...
        ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:593:9: error: no matching function for call to 'rc_to_error'
        rc_to_error(ARAKOON_RC_CLIENT_UNKNOWN_NODE);
        ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:602:9: error: no matching function for call to 'rc_to_error'
        rc_to_error(ARAKOON_RC_CLIENT_UNKNOWN_NODE);
        ^~~~~~~~~~~
arakoonmm.cpp:68:1: note: candidate function not viable: requires 2 arguments,
      but 1 was provided
rc_to_error(
^
arakoonmm.cpp:669:37: error: too few arguments to function call, expected 2,
      have 1
            arakoon::rc_to_error(rc1);
            ~~~~~~~~~~~~~~~~~~~~    ^
arakoonmm.cpp:67:1: note: 'rc_to_error' declared here
void
^
16 errors generated.
make[2]: *** [libarakoonmm_1_0_la-arakoonmm.lo] Error 1

Version info:

$ clang++ --version
clang version 3.1 (branches/release_31)
Target: x86_64-redhat-linux-gnu
Thread model: posix
$ g++ --version
g++ (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
NicolasT commented 11 years ago

Fixed by #9.