Не собирается
Igorjan94 opened this issue · comments
pd/base/config.C: В функции-члене «const pd::string_t* pd::config::environ_t::item_t::lookup(const pd::string_t&) const»:
pd/base/config.C:104:4: ошибка: nonnull argument «this» compared to NULL [-Werror=nonnull-compare]
if(!this)
^~
При комментировании в opts.mk флага -Werror сборка идет дальше, однако некоторое время спустя падает уже с реальной ошибкой:
./pd/base/config_named_list.H:30:44: ошибка: «pd::config::ctor_base_t<phantom::io_client::proto_t>* pd::list_item_t<pd::config::ctor_base_t<phantom::io_client::proto_t> >::next» is protected within this context
for(x_t *item = list; item; item = item->next)
~~~~~~^~~~
В попытке поменять "ну вдруг" видимость на паблик, возникает похожая ошибка, но дальше "дебажить" меня уже не хватило
Arch x86_64, 4.8.11-1
gcc 6.2.1 20160830 (GCC)
Аналогично:
g++ -c -g -O3 -std=gnu++0x -fvisibility=hidden -fvisibility-inlines-hidden -fno-default-inline -fno-omit-frame-pointer -fno-common -fsigned-char -Wall -W -Wsign-promo -Woverloaded-virtual -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -isystem . -isystem ./pd/fixinclude -D_GNU_SOURCE=1 -Wundef -MD -MF deps/phantom%io_client%io_client.s.o.d -fPIC phantom/io_client/io_client.C -o phantom/io_client/io_client.s.o
In file included from ./pd/base/config.H:9:0,
from ./phantom/scheduler.H:14,
from phantom/io_client/link.H:11,
from phantom/io_client/io_client.C:7:
./pd/base/config_named_list.H: In instantiation of ‘static x_t& pd::config::named_list_item_t<x_t>::find(const pd::string_t&, const pd::in_t::ptr_t&) [with x_t = pd::config::ctor_base_t<phantom::io_client::proto_t>]’:
./pd/base/config.H:360:26: required from ‘bool pd::config::binding_t<conf_t>::type_t<x_t>::parse_item(const pd::string_t&, pd::in_t::ptr_t&, conf_t&) const [with x_t = phantom::io_client::proto_t; conf_t = phantom::io_client_t::config_t]’
phantom/io_client/io_client.C:142:1: required from here
./pd/base/config_named_list.H:30:44: error: ‘pd::config::ctor_base_t<phantom::io_client::proto_t>* pd::list_item_t<pd::config::ctor_base_t<phantom::io_client::proto_t> >::next’ is protected within this context
for(x_t *item = list; item; item = item->next)
~~~~~~^~~~
In file included from ./phantom/obj.H:11:0,
from ./phantom/scheduler.H:9,
from phantom/io_client/link.H:11,
from phantom/io_client/io_client.C:7:
./pd/base/list.H:18:7: note: declared protected here
x_t *next, **me;
^~~~
In file included from ./pd/base/config.H:9:0,
from ./phantom/scheduler.H:14,
from phantom/io_client/link.H:11,
from phantom/io_client/io_client.C:7:
./pd/base/config_named_list.H: In instantiation of ‘static x_t& pd::config::named_list_item_t<x_t>::find(const pd::string_t&, const pd::in_t::ptr_t&) [with x_t = pd::config::ctor_base_t<phantom::io_client::links_t>]’:
./pd/base/config.H:360:26: required from ‘bool pd::config::binding_t<conf_t>::type_t<x_t>::parse_item(const pd::string_t&, pd::in_t::ptr_t&, conf_t&) const [with x_t = phantom::io_client::links_t; conf_t = phantom::io_client_t::config_t]’
phantom/io_client/io_client.C:142:1: required from here
./pd/base/config_named_list.H:30:44: error: ‘pd::config::ctor_base_t<phantom::io_client::links_t>* pd::list_item_t<pd::config::ctor_base_t<phantom::io_client::links_t> >::next’ is protected within this context
for(x_t *item = list; item; item = item->next)
~~~~~~^~~~
In file included from ./phantom/obj.H:11:0,
from ./phantom/scheduler.H:9,
from phantom/io_client/link.H:11,
from phantom/io_client/io_client.C:7:
./pd/base/list.H:18:7: note: declared protected here
x_t *next, **me;
^~~~
In file included from ./pd/base/config.H:9:0,
from ./phantom/scheduler.H:14,
from phantom/io_client/link.H:11,
from phantom/io_client/io_client.C:7:
./pd/base/config_named_list.H: In instantiation of ‘static x_t& pd::config::named_list_item_t<x_t>::find(const pd::string_t&, const pd::in_t::ptr_t&) [with x_t = pd::config::enum_t<pd::log::level_t>::item_t]’:
./pd/base/config_enum.H:84:36: required from ‘static void pd::config::helper_t<pd::config::enum_t<val_t> >::parse(pd::in_t::ptr_t&, pd::config::enum_t<val_t>&) [with val_t = pd::log::level_t]’
./pd/base/config.H:213:69: required from ‘void pd::config::value_parser_t<val_t>::parse_value(pd::in_t::ptr_t&) [with val_t = pd::config::enum_t<pd::log::level_t>]’
phantom/io_client/io_client.C:142:1: required from here
./pd/base/config_named_list.H:30:44: error: ‘pd::config::enum_t<pd::log::level_t>::item_t* pd::list_item_t<pd::config::enum_t<pd::log::level_t>::item_t>::next’ is protected within this context
for(x_t *item = list; item; item = item->next)
~~~~~~^~~~
In file included from ./phantom/obj.H:11:0,
from ./phantom/scheduler.H:9,
from phantom/io_client/link.H:11,
from phantom/io_client/io_client.C:7:
./pd/base/list.H:18:7: note: declared protected here
x_t *next, **me;
^~~~
In file included from ./pd/base/config.H:9:0,
from ./phantom/scheduler.H:14,
from phantom/io_client/link.H:11,
from phantom/io_client/io_client.C:7:
./pd/base/config_named_list.H:31:46: error: ‘pd::string_t pd::config::named_list_item_t<pd::config::enum_t<pd::log::level_t>::item_t>::name’ is protected within this context
if(string_t::cmp_eq<ident_t>(_name, item->name)) return *item;
~~~~~~^~~~
./pd/base/config_named_list.H:19:11: note: declared protected here
string_t name;
^~~~
make: *** [phantom/io_client/io_client.s.o] Error 1
opts.mk:48: recipe for target 'phantom/io_client/io_client.s.o' failed
ping?
Аналогично с gcc7