Clang 7 показывает внешнюю связь для частного статического члена класса C ++ в ARM - PullRequest
0 голосов
/ 20 февраля 2019

Похоже ли это на ошибку, которую 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.

...