Похоже ли это на ошибку, которую Clang (проверенные версии 7 и 8) создает частный статический член с внешней связью в следующем случае?
namespace myns {
class myclass {
private:
static const std::vector<string> mylist;
....
};
};
Я компилирую свою библиотеку с параметром --visibility = hidden дляскрыть внутренние детали программы.Но только для цели ARM (ARM64, x86 работает как положено) символ все еще виден в скомпилированной библиотеке:
> rabin2 -s * .so |grep mylist
vaddr = 0x00788dfc paddr = 0x00787dfc ord = 084 fwd = NONE sz = 12 bind = GLOBAL type = имя ОБЪЕКТА = myns :: myclass :: mylist
Почему должно присутствовать имя переменнойв двоичном с --visibility = скрыто, если он используется внутри одного класса?
Кажется, что имя переменной не присутствовало в двоичном, когда я компилировал с версией Clang 3.9.