Merge "Add symbol binding information to header-abi-linker"

am: 8f9d0924cc

Change-Id: I2b2f1fe0912ac2a22aa7bcd1e1e2149423548457
This commit is contained in:
Jayant Chowdhary
2018-08-31 21:05:57 -07:00
committed by android-build-merger
129 changed files with 1537 additions and 95 deletions

View File

@@ -90,14 +90,17 @@ class HeaderAbiLinker {
bool LinkAndDump(); bool LinkAndDump();
private: private:
template <typename T> template <typename T, typename LinkMapType>
bool LinkDecl(abi_util::IRDumper *dst, bool LinkDecl(abi_util::IRDumper *dst,
std::set<std::string> *link_set, std::map<std::string, LinkMapType> *link_map,
std::set<std::string> *regex_matched_link_set, std::set<std::string> *regex_matched_link_set,
const std::regex *vs_regex, const std::regex *vs_regex,
const abi_util::AbiElementMap<T> &src, const abi_util::AbiElementMap<T> &src,
bool use_version_script); bool use_version_script);
template <typename T>
bool LinkDecl(abi_util::IRDumper *dst, const abi_util::AbiElementMap<T> &src);
bool ParseVersionScriptFiles(); bool ParseVersionScriptFiles();
bool ParseSoFile(); bool ParseSoFile();
@@ -124,9 +127,8 @@ class HeaderAbiLinker {
const std::string &api_; const std::string &api_;
// TODO: Add to a map of std::sets instead. // TODO: Add to a map of std::sets instead.
std::set<std::string> exported_headers_; std::set<std::string> exported_headers_;
std::set<std::string> types_set_; std::map<std::string, abi_util::ElfFunctionIR> function_decl_map_;
std::set<std::string> function_decl_set_; std::map<std::string, abi_util::ElfObjectIR> globvar_decl_map_;
std::set<std::string> globvar_decl_set_;
// Version Script Regex Matching. // Version Script Regex Matching.
std::set<std::string> functions_regex_matched_set; std::set<std::string> functions_regex_matched_set;
std::regex functions_vs_regex_; std::regex functions_vs_regex_;
@@ -135,11 +137,11 @@ class HeaderAbiLinker {
std::regex globvars_vs_regex_; std::regex globvars_vs_regex_;
}; };
template <typename T, typename Iterable> template <typename T>
static bool AddElfSymbols(abi_util::IRDumper *dst, const Iterable &symbols) { static bool AddElfSymbols(abi_util::IRDumper *dst,
const std::map<std::string, T> &symbols) {
for (auto &&symbol : symbols) { for (auto &&symbol : symbols) {
T elf_symbol(symbol); if (!dst->AddElfSymbolMessageIR(&(symbol.second))) {
if (!dst->AddElfSymbolMessageIR(&elf_symbol)) {
return false; return false;
} }
} }
@@ -148,10 +150,8 @@ static bool AddElfSymbols(abi_util::IRDumper *dst, const Iterable &symbols) {
// To be called right after parsing the .so file / version script. // To be called right after parsing the .so file / version script.
bool HeaderAbiLinker::AddElfSymbols(abi_util::IRDumper *ir_dumper) { bool HeaderAbiLinker::AddElfSymbols(abi_util::IRDumper *ir_dumper) {
return ::AddElfSymbols<abi_util::ElfFunctionIR>(ir_dumper, return ::AddElfSymbols(ir_dumper, function_decl_map_) &&
function_decl_set_) && ::AddElfSymbols(ir_dumper, globvar_decl_map_);
::AddElfSymbols<abi_util::ElfObjectIR>(ir_dumper,
globvar_decl_set_);
} }
static void DeDuplicateAbiElementsThread( static void DeDuplicateAbiElementsThread(
@@ -273,35 +273,34 @@ static std::regex CreateRegexMatchExprFromSet(
return std::regex(all_regex_match_str); return std::regex(all_regex_match_str);
} }
template <typename T> template <typename T, typename LinkMapType>
bool HeaderAbiLinker::LinkDecl( bool HeaderAbiLinker::LinkDecl(
abi_util::IRDumper *dst, std::set<std::string> *link_set, abi_util::IRDumper *dst, std::map<std::string, LinkMapType> *link_map,
std::set<std::string> *regex_matched_link_set, const std::regex *vs_regex, std::set<std::string> *regex_matched_link_set, const std::regex *vs_regex,
const abi_util::AbiElementMap<T> &src, bool use_version_script_or_so) { const abi_util::AbiElementMap<T> &src, bool use_version_script_or_so) {
assert(dst != nullptr); assert(dst != nullptr);
assert(link_set != nullptr);
for (auto &&element : src) { for (auto &&element : src) {
// If we are not using a version script and exported headers are available, // If we are not using a version script and exported headers are available,
// filter out unexported abi. // filter out unexported abi.
std::string source_file = element.second.GetSourceFile(); std::string source_file = element.second.GetSourceFile();
// Builtin types will not have source file information. // Builtin types will not have source file information.
if (!exported_headers_.empty() && !source_file.empty() && if (!exported_headers_.empty() && !source_file.empty() &&
exported_headers_.find(source_file) == exported_headers_.find(source_file) == exported_headers_.end()) {
exported_headers_.end()) {
continue; continue;
} }
const std::string &element_str = element.first; const std::string &element_str = element.first;
// Check for the existence of the element in linked dump / symbol file. // Check for the existence of the element in linked dump / symbol file.
if (use_version_script_or_so) { if (use_version_script_or_so) {
std::set<std::string>::iterator it = assert(link_map != nullptr);
link_set->find(element_str); typename std::map<std::string, LinkMapType>::iterator it =
if (it == link_set->end()) { link_map->find(element_str);
if (it == link_map->end()) {
if (!QueryRegexMatches(regex_matched_link_set, vs_regex, element_str)) { if (!QueryRegexMatches(regex_matched_link_set, vs_regex, element_str)) {
continue; continue;
} }
} else { } else {
// We get a pre-filled link name set while using version script. // We get a pre-filled link name set while using version script.
link_set->erase(*it); // Avoid multiple instances of the same symbol. link_map->erase(it); // Avoid multiple instances of the same symbol.
} }
} }
if (!dst->AddLinkableMessageIR(&(element.second))) { if (!dst->AddLinkableMessageIR(&(element.second))) {
@@ -312,30 +311,40 @@ bool HeaderAbiLinker::LinkDecl(
return true; return true;
} }
template <typename T>
bool HeaderAbiLinker::LinkDecl(abi_util::IRDumper *dst,
const abi_util::AbiElementMap<T> &src) {
assert(dst != nullptr);
for (auto &&element : src) {
// If we are not using a version script and exported headers are available,
// filter out unexported abi.
std::string source_file = element.second.GetSourceFile();
// Builtin types will not have source file information.
if (!exported_headers_.empty() && !source_file.empty() &&
exported_headers_.find(source_file) == exported_headers_.end()) {
continue;
}
if (!dst->AddLinkableMessageIR(&(element.second))) {
llvm::errs() << "Failed to add element to linked dump\n";
return false;
}
}
return true;
}
bool HeaderAbiLinker::LinkTypes(const abi_util::TextFormatToIRReader *reader, bool HeaderAbiLinker::LinkTypes(const abi_util::TextFormatToIRReader *reader,
abi_util::IRDumper *ir_dumper) { abi_util::IRDumper *ir_dumper) {
assert(reader != nullptr); assert(reader != nullptr);
assert(ir_dumper != nullptr); assert(ir_dumper != nullptr);
// Even if version scripts are available we take in types, since the symbols return LinkDecl(ir_dumper, reader->GetRecordTypes()) &&
// in the version script might reference a type exposed by the library. LinkDecl(ir_dumper, reader->GetEnumTypes()) &&
return LinkDecl(ir_dumper, &types_set_, nullptr, LinkDecl(ir_dumper, reader->GetFunctionTypes()) &&
nullptr, reader->GetRecordTypes(), false) && LinkDecl(ir_dumper, reader->GetBuiltinTypes()) &&
LinkDecl(ir_dumper, &types_set_, nullptr, LinkDecl(ir_dumper, reader->GetPointerTypes()) &&
nullptr, reader->GetEnumTypes(), false) && LinkDecl(ir_dumper, reader->GetRvalueReferenceTypes()) &&
LinkDecl(ir_dumper, &types_set_, nullptr, nullptr, LinkDecl(ir_dumper, reader->GetLvalueReferenceTypes()) &&
reader->GetFunctionTypes(), false) && LinkDecl(ir_dumper, reader->GetArrayTypes()) &&
LinkDecl(ir_dumper, &types_set_, nullptr, LinkDecl(ir_dumper, reader->GetQualifiedTypes());
nullptr, reader->GetBuiltinTypes(), false) &&
LinkDecl(ir_dumper, &types_set_, nullptr,
nullptr, reader->GetPointerTypes(), false) &&
LinkDecl(ir_dumper, &types_set_, nullptr,
nullptr, reader->GetRvalueReferenceTypes(), false) &&
LinkDecl(ir_dumper, &types_set_, nullptr,
nullptr, reader->GetLvalueReferenceTypes(), false) &&
LinkDecl(ir_dumper, &types_set_, nullptr,
nullptr, reader->GetArrayTypes(), false) &&
LinkDecl(ir_dumper, &types_set_, nullptr,
nullptr, reader->GetQualifiedTypes(), false);
} }
bool HeaderAbiLinker::LinkFunctions( bool HeaderAbiLinker::LinkFunctions(
@@ -343,7 +352,7 @@ bool HeaderAbiLinker::LinkFunctions(
abi_util::IRDumper *ir_dumper) { abi_util::IRDumper *ir_dumper) {
assert(reader != nullptr); assert(reader != nullptr);
return LinkDecl(ir_dumper, &function_decl_set_, return LinkDecl(ir_dumper, &function_decl_map_,
&functions_regex_matched_set, &functions_vs_regex_, &functions_regex_matched_set, &functions_vs_regex_,
reader->GetFunctions(), reader->GetFunctions(),
(!version_script_.empty() || !so_file_.empty())); (!version_script_.empty() || !so_file_.empty()));
@@ -354,7 +363,7 @@ bool HeaderAbiLinker::LinkGlobalVars(
abi_util::IRDumper *ir_dumper) { abi_util::IRDumper *ir_dumper) {
assert(reader != nullptr); assert(reader != nullptr);
return LinkDecl(ir_dumper, &globvar_decl_set_, return LinkDecl(ir_dumper, &globvar_decl_map_,
&globvars_regex_matched_set, &globvars_vs_regex_, &globvars_regex_matched_set, &globvars_vs_regex_,
reader->GetGlobalVariables(), reader->GetGlobalVariables(),
(!version_script.empty() || !so_file_.empty())); (!version_script.empty() || !so_file_.empty()));
@@ -367,8 +376,8 @@ bool HeaderAbiLinker::ParseVersionScriptFiles() {
llvm::errs() << "Failed to parse version script\n"; llvm::errs() << "Failed to parse version script\n";
return false; return false;
} }
function_decl_set_ = version_script_parser.GetFunctions(); function_decl_map_ = version_script_parser.GetFunctions();
globvar_decl_set_ = version_script_parser.GetGlobVars(); globvar_decl_map_ = version_script_parser.GetGlobVars();
std::set<std::string> function_regexs = std::set<std::string> function_regexs =
version_script_parser.GetFunctionRegexs(); version_script_parser.GetFunctionRegexs();
std::set<std::string> globvar_regexs = std::set<std::string> globvar_regexs =
@@ -399,8 +408,8 @@ bool HeaderAbiLinker::ParseSoFile() {
return false; return false;
} }
so_parser->GetSymbols(); so_parser->GetSymbols();
function_decl_set_ = so_parser->GetFunctions(); function_decl_map_ = so_parser->GetFunctions();
globvar_decl_set_ = so_parser->GetGlobVars(); globvar_decl_map_ = so_parser->GetGlobVars();
return true; return true;
} }

View File

@@ -12,6 +12,8 @@
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
#include <ir_representation.h>
#include <llvm/Object/ELFObjectFile.h> #include <llvm/Object/ELFObjectFile.h>
#include <llvm/Object/ELFTypes.h> #include <llvm/Object/ELFTypes.h>
#include <llvm/Object/SymbolSize.h> #include <llvm/Object/SymbolSize.h>
@@ -50,9 +52,9 @@ class VersionScriptParser {
const std::string &api); const std::string &api);
bool Parse(); bool Parse();
const std::set<std::string> &GetFunctions(); const std::map<std::string, ElfFunctionIR> &GetFunctions();
const std::set<std::string> &GetGlobVars(); const std::map<std::string, ElfObjectIR> &GetGlobVars();
const std::set<std::string> &GetFunctionRegexs(); const std::set<std::string> &GetFunctionRegexs();
@@ -81,8 +83,8 @@ class VersionScriptParser {
private: private:
const std::string &version_script_; const std::string &version_script_;
const std::string &arch_; const std::string &arch_;
std::set<std::string> functions_; std::map<std::string, ElfFunctionIR> functions_;
std::set<std::string> globvars_; std::map<std::string, ElfObjectIR> globvars_;
// Added to speed up version script parsing and linking. // Added to speed up version script parsing and linking.
std::set<std::string> function_regexs_; std::set<std::string> function_regexs_;
std::set<std::string> globvar_regexs_; std::set<std::string> globvar_regexs_;
@@ -102,8 +104,8 @@ inline std::string FindAndReplace(const std::string &candidate_str,
class SoFileParser { class SoFileParser {
public: public:
static std::unique_ptr<SoFileParser> Create(const ObjectFile *obj); static std::unique_ptr<SoFileParser> Create(const ObjectFile *obj);
virtual const std::set<std::string> &GetFunctions() const = 0; virtual const std::map<std::string, ElfFunctionIR> &GetFunctions() const = 0;
virtual const std::set<std::string> &GetGlobVars() const = 0; virtual const std::map<std::string, ElfObjectIR> &GetGlobVars() const = 0;
virtual ~SoFileParser() {}; virtual ~SoFileParser() {};
virtual void GetSymbols() = 0; virtual void GetSymbols() = 0;
}; };
@@ -111,9 +113,9 @@ public:
template<typename T> template<typename T>
class ELFSoFileParser : public SoFileParser { class ELFSoFileParser : public SoFileParser {
public: public:
const std::set<std::string> &GetFunctions() const override; const std::map<std::string, ElfFunctionIR> &GetFunctions() const override;
const std::set<std::string> &GetGlobVars() const override; const std::map<std::string, ElfObjectIR> &GetGlobVars() const override;
LLVM_ELF_IMPORT_TYPES_ELFT(T) LLVM_ELF_IMPORT_TYPES_ELFT(T)
typedef ELFFile<T> ELFO; typedef ELFFile<T> ELFO;
@@ -124,8 +126,8 @@ class ELFSoFileParser : public SoFileParser {
void GetSymbols() override; void GetSymbols() override;
private: private:
const ELFObjectFile<T> *obj_; const ELFObjectFile<T> *obj_;
std::set<std::string> functions_; std::map<std::string, abi_util::ElfFunctionIR> functions_;
std::set<std::string> globvars_; std::map<std::string, abi_util::ElfObjectIR> globvars_;
private: private:
bool IsSymbolExported(const Elf_Sym *elf_sym) const; bool IsSymbolExported(const Elf_Sym *elf_sym) const;

View File

@@ -702,14 +702,30 @@ class ElfSymbolIR {
public: public:
enum ElfSymbolKind { enum ElfSymbolKind {
ElfFunctionKind, ElfFunctionKind,
ElfObjectKind ElfObjectKind,
};
enum ElfSymbolBinding {
Weak,
Global,
};
enum ElfSymbolVisibility {
Default,
Protected,
}; };
const std::string GetName() const { const std::string GetName() const {
return name_; return name_;
} }
ElfSymbolIR(const std::string &name) : name_(name) { } ElfSymbolBinding GetBinding() const {
return binding_;
}
ElfSymbolIR(const std::string &name, ElfSymbolBinding binding)
: name_(name), binding_(binding) { }
virtual ElfSymbolKind GetKind() const = 0; virtual ElfSymbolKind GetKind() const = 0;
@@ -717,15 +733,17 @@ class ElfSymbolIR {
protected: protected:
std::string name_; std::string name_;
ElfSymbolBinding binding_;
}; };
class ElfFunctionIR : public ElfSymbolIR{ class ElfFunctionIR : public ElfSymbolIR {
public: public:
ElfSymbolKind GetKind() const override { ElfSymbolKind GetKind() const override {
return ElfFunctionKind; return ElfFunctionKind;
} }
ElfFunctionIR(const std::string &name) : ElfSymbolIR(name) { } ElfFunctionIR(const std::string &name, ElfSymbolBinding binding)
: ElfSymbolIR(name, binding) { }
}; };
class ElfObjectIR : public ElfSymbolIR { class ElfObjectIR : public ElfSymbolIR {
@@ -734,7 +752,8 @@ class ElfObjectIR : public ElfSymbolIR {
return ElfObjectKind; return ElfObjectKind;
} }
ElfObjectIR(const std::string &name) : ElfSymbolIR(name) { } ElfObjectIR(const std::string &name, ElfSymbolBinding binding)
: ElfSymbolIR(name, binding) { }
}; };
class IRDumper { class IRDumper {

View File

@@ -44,6 +44,31 @@ inline abi_diff::CompatibilityStatus CompatibilityStatusIRToProtobuf(
return abi_diff::CompatibilityStatus::COMPATIBLE; return abi_diff::CompatibilityStatus::COMPATIBLE;
} }
inline abi_dump::ElfSymbolBinding ElfSymbolBindingIRToProtobuf(
ElfSymbolIR::ElfSymbolBinding binding) {
switch(binding) {
case ElfSymbolIR::ElfSymbolBinding::Global:
return abi_dump::ElfSymbolBinding::Global;
case ElfSymbolIR::ElfSymbolBinding::Weak:
return abi_dump::ElfSymbolBinding::Weak;
}
// We skip symbols of all other Bindings
// TODO: Add all bindings, don't leave out info
assert(0);
}
inline ElfSymbolIR::ElfSymbolBinding ElfSymbolBindingProtobufToIR(
abi_dump::ElfSymbolBinding binding) {
switch(binding) {
case abi_dump::ElfSymbolBinding::Global:
return ElfSymbolIR::ElfSymbolBinding::Global;
case abi_dump::ElfSymbolBinding::Weak:
return ElfSymbolIR::ElfSymbolBinding::Weak;
}
// We skip symbols of all other Bindings
assert(0);
}
inline abi_dump::AccessSpecifier AccessIRToProtobuf(AccessSpecifierIR access) { inline abi_dump::AccessSpecifier AccessIRToProtobuf(AccessSpecifierIR access) {
switch (access) { switch (access) {
case AccessSpecifierIR::ProtectedAccess: case AccessSpecifierIR::ProtectedAccess:

View File

@@ -367,7 +367,9 @@ void ProtobufTextFormatToIRReader::ReadEnumTypes(
void ProtobufTextFormatToIRReader::ReadElfFunctions( void ProtobufTextFormatToIRReader::ReadElfFunctions(
const abi_dump::TranslationUnit &tu) { const abi_dump::TranslationUnit &tu) {
for (auto &&elf_function : tu.elf_functions()) { for (auto &&elf_function : tu.elf_functions()) {
ElfFunctionIR elf_function_ir(elf_function.name()); ElfFunctionIR elf_function_ir(
elf_function.name(),
ElfSymbolBindingProtobufToIR(elf_function.binding()));
elf_functions_.insert( elf_functions_.insert(
{elf_function_ir.GetName(), std::move(elf_function_ir)}); {elf_function_ir.GetName(), std::move(elf_function_ir)});
} }
@@ -376,7 +378,8 @@ void ProtobufTextFormatToIRReader::ReadElfFunctions(
void ProtobufTextFormatToIRReader::ReadElfObjects( void ProtobufTextFormatToIRReader::ReadElfObjects(
const abi_dump::TranslationUnit &tu) { const abi_dump::TranslationUnit &tu) {
for (auto &&elf_object : tu.elf_objects()) { for (auto &&elf_object : tu.elf_objects()) {
ElfObjectIR elf_object_ir(elf_object.name()); ElfObjectIR elf_object_ir(
elf_object.name(), ElfSymbolBindingProtobufToIR(elf_object.binding()));
elf_objects_.insert( elf_objects_.insert(
{elf_object_ir.GetName(), std::move(elf_object_ir)}); {elf_object_ir.GetName(), std::move(elf_object_ir)});
} }
@@ -1025,6 +1028,8 @@ bool ProtobufIRDumper::AddElfFunctionIR(const ElfFunctionIR *elf_function) {
return false; return false;
} }
added_elf_function->set_name(elf_function->GetName()); added_elf_function->set_name(elf_function->GetName());
added_elf_function->set_binding(
ElfSymbolBindingIRToProtobuf(elf_function->GetBinding()));
return true; return true;
} }
@@ -1034,6 +1039,8 @@ bool ProtobufIRDumper::AddElfObjectIR(const ElfObjectIR *elf_object) {
return false; return false;
} }
added_elf_object->set_name(elf_object->GetName()); added_elf_object->set_name(elf_object->GetName());
added_elf_object->set_binding(
ElfSymbolBindingIRToProtobuf(elf_object->GetBinding()));
return true; return true;
} }
@@ -1508,4 +1515,4 @@ bool ProtobufIRDiffDumper::Dump() {
return google::protobuf::TextFormat::Print(*diff_tu_.get(), &text_os); return google::protobuf::TextFormat::Print(*diff_tu_.get(), &text_os);
} }
} //abi_util } // namespace abi_util

View File

@@ -13,6 +13,7 @@
// limitations under the License. // limitations under the License.
#include <header_abi_util.h> #include <header_abi_util.h>
#include <ir_representation.h>
#include <llvm/Object/ELFObjectFile.h> #include <llvm/Object/ELFObjectFile.h>
#include <llvm/Object/Binary.h> #include <llvm/Object/Binary.h>
@@ -44,24 +45,34 @@ static inline T UnWrap(llvm::Expected<T> ValueOrError) {
} }
template<typename T> template<typename T>
const std::set<std::string> &ELFSoFileParser<T>::GetFunctions() const { const std::map<std::string, abi_util::ElfFunctionIR> &
ELFSoFileParser<T>::GetFunctions() const {
return functions_; return functions_;
} }
template<typename T> template<typename T>
const std::set<std::string> &ELFSoFileParser<T>::GetGlobVars() const { const std::map<std::string, abi_util::ElfObjectIR> &
ELFSoFileParser<T>::GetGlobVars() const {
return globvars_; return globvars_;
} }
template<typename T> template<typename T>
bool ELFSoFileParser<T>::IsSymbolExported(const Elf_Sym *elf_sym) const { bool ELFSoFileParser<T>::IsSymbolExported(const Elf_Sym *elf_sym) const {
unsigned char visibility = elf_sym->getVisibility(); unsigned char visibility = elf_sym->getVisibility();
unsigned char binding = elf_sym->getBinding(); unsigned char binding = elf_sym->getBinding();
return (binding == STB_GLOBAL || binding == STB_WEAK) && return (binding == STB_GLOBAL || binding == STB_WEAK) &&
(visibility == STV_DEFAULT || (visibility == STV_DEFAULT || visibility == STV_PROTECTED);
visibility == STV_PROTECTED); }
static abi_util::ElfSymbolIR::ElfSymbolBinding
LLVMToIRSymbolBinding(unsigned char binding) {
switch (binding) {
case STB_GLOBAL:
return abi_util::ElfSymbolIR::ElfSymbolBinding::Global;
case STB_WEAK:
return abi_util::ElfSymbolIR::ElfSymbolBinding::Weak;
}
assert(0);
} }
template<typename T> template<typename T>
@@ -74,12 +85,15 @@ void ELFSoFileParser<T>::GetSymbols() {
if (!IsSymbolExported(elf_sym) || elf_sym->isUndefined()) { if (!IsSymbolExported(elf_sym) || elf_sym->isUndefined()) {
continue; continue;
} }
abi_util::ElfSymbolIR::ElfSymbolBinding symbol_binding =
LLVMToIRSymbolBinding(elf_sym->getBinding());
llvm::object::SymbolRef::Type type = UnWrap(symbol_it.getType()); llvm::object::SymbolRef::Type type = UnWrap(symbol_it.getType());
std::string symbol_name = UnWrap(symbol_it.getName()); std::string symbol_name = UnWrap(symbol_it.getName());
if (type == llvm::object::SymbolRef::Type::ST_Function) { if (type == llvm::object::SymbolRef::Type::ST_Function) {
functions_.insert(symbol_name); functions_.emplace(symbol_name,
ElfFunctionIR(symbol_name, symbol_binding));
} else if (type == llvm::object::SymbolRef::Type::ST_Data) { } else if (type == llvm::object::SymbolRef::Type::ST_Data) {
globvars_.insert(symbol_name); globvars_.emplace(symbol_name, ElfObjectIR(symbol_name, symbol_binding));
} }
} }
} }

View File

@@ -106,7 +106,8 @@ void VersionScriptParser::AddToVars(std::string &symbol) {
if (symbol.find("*") != std::string::npos) { if (symbol.find("*") != std::string::npos) {
globvar_regexs_.insert(symbol); globvar_regexs_.insert(symbol);
} else { } else {
globvars_.insert(symbol); globvars_.emplace(
symbol, ElfObjectIR(symbol, ElfSymbolIR::ElfSymbolBinding::Global));
} }
} }
@@ -114,7 +115,8 @@ void VersionScriptParser::AddToFunctions(std::string &symbol) {
if (symbol.find("*") != std::string::npos) { if (symbol.find("*") != std::string::npos) {
function_regexs_.insert(symbol); function_regexs_.insert(symbol);
} else { } else {
functions_.insert(symbol); functions_.emplace(
symbol, ElfFunctionIR(symbol, ElfSymbolIR::ElfSymbolBinding::Global));
} }
} }
@@ -169,11 +171,12 @@ bool VersionScriptParser::ParseInnerBlock(std::ifstream &symbol_ifstream) {
return true; return true;
} }
const std::set<std::string> &VersionScriptParser::GetFunctions() { const std::map<std::string, ElfFunctionIR> &
VersionScriptParser::GetFunctions() {
return functions_; return functions_;
} }
const std::set<std::string> &VersionScriptParser::GetGlobVars() { const std::map<std::string, ElfObjectIR> &VersionScriptParser::GetGlobVars() {
return globvars_; return globvars_;
} }

View File

@@ -160,12 +160,19 @@ message GlobalVarDecl {
optional AccessSpecifier access = 5 [default = public_access]; optional AccessSpecifier access = 5 [default = public_access];
} }
enum ElfSymbolBinding {
Global = 1;
Weak = 2;
}
message ElfFunction { message ElfFunction {
optional string name = 1; optional string name = 1;
optional ElfSymbolBinding binding = 2;
} }
message ElfObject { message ElfObject {
optional string name = 1; optional string name = 1;
optional ElfSymbolBinding binding = 2;
} }
message TranslationUnit { message TranslationUnit {

File diff suppressed because one or more lines are too long

View File

@@ -188,7 +188,9 @@ functions {
} }
elf_functions { elf_functions {
name: "CFunction" name: "CFunction"
binding: Global
} }
elf_functions { elf_functions {
name: "_Z3fooPiS_" name: "_Z3fooPiS_"
binding: Global
} }

View File

@@ -210,7 +210,9 @@ functions {
} }
elf_functions { elf_functions {
name: "CFunction" name: "CFunction"
binding: Global
} }
elf_functions { elf_functions {
name: "_Z3fooPiS_" name: "_Z3fooPiS_"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -443,49 +443,65 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker13AddedFunctionEv" name: "_ZN17HighVolumeSpeaker13AddedFunctionEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -438,49 +438,65 @@ global_vars {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZN17HighVolumeSpeaker21global_unprotected_idE" name: "_ZN17HighVolumeSpeaker21global_unprotected_idE"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -415,37 +415,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -423,37 +423,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -479,37 +479,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -433,37 +433,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -432,37 +432,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -432,37 +432,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -431,46 +431,61 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEi" name: "_ZN17HighVolumeSpeaker11BadPracticeEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,34 +419,45 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -414,37 +414,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -35,4 +35,5 @@ builtin_types {
} }
elf_functions { elf_functions {
name: "repro" name: "repro"
binding: Global
} }

View File

@@ -188,7 +188,9 @@ functions {
} }
elf_functions { elf_functions {
name: "CFunction" name: "CFunction"
binding: Global
} }
elf_functions { elf_functions {
name: "_Z3fooPiS_" name: "_Z3fooPiS_"
binding: Global
} }

View File

@@ -210,7 +210,9 @@ functions {
} }
elf_functions { elf_functions {
name: "CFunction" name: "CFunction"
binding: Global
} }
elf_functions { elf_functions {
name: "_Z3fooPiS_" name: "_Z3fooPiS_"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -443,49 +443,65 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker13AddedFunctionEv" name: "_ZN17HighVolumeSpeaker13AddedFunctionEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -438,49 +438,65 @@ global_vars {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZN17HighVolumeSpeaker21global_unprotected_idE" name: "_ZN17HighVolumeSpeaker21global_unprotected_idE"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -415,37 +415,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -423,37 +423,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -479,37 +479,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -433,37 +433,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -432,37 +432,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -432,37 +432,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -431,46 +431,61 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEi" name: "_ZN17HighVolumeSpeaker11BadPracticeEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,34 +419,45 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -414,37 +414,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -35,4 +35,5 @@ builtin_types {
} }
elf_functions { elf_functions {
name: "repro" name: "repro"
binding: Global
} }

View File

@@ -188,7 +188,9 @@ functions {
} }
elf_functions { elf_functions {
name: "CFunction" name: "CFunction"
binding: Global
} }
elf_functions { elf_functions {
name: "_Z3fooPiS_" name: "_Z3fooPiS_"
binding: Global
} }

View File

@@ -210,7 +210,9 @@ functions {
} }
elf_functions { elf_functions {
name: "CFunction" name: "CFunction"
binding: Global
} }
elf_functions { elf_functions {
name: "_Z3fooPiS_" name: "_Z3fooPiS_"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -443,49 +443,65 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker13AddedFunctionEv" name: "_ZN17HighVolumeSpeaker13AddedFunctionEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -438,49 +438,65 @@ global_vars {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZN17HighVolumeSpeaker21global_unprotected_idE" name: "_ZN17HighVolumeSpeaker21global_unprotected_idE"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -415,37 +415,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -423,37 +423,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -479,37 +479,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -433,37 +433,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -432,37 +432,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -432,37 +432,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -431,46 +431,61 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEi" name: "_ZN17HighVolumeSpeaker11BadPracticeEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,34 +419,45 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -414,37 +414,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -35,4 +35,5 @@ builtin_types {
} }
elf_functions { elf_functions {
name: "repro" name: "repro"
binding: Global
} }

View File

@@ -188,7 +188,9 @@ functions {
} }
elf_functions { elf_functions {
name: "CFunction" name: "CFunction"
binding: Global
} }
elf_functions { elf_functions {
name: "_Z3fooPiS_" name: "_Z3fooPiS_"
binding: Global
} }

View File

@@ -210,7 +210,9 @@ functions {
} }
elf_functions { elf_functions {
name: "CFunction" name: "CFunction"
binding: Global
} }
elf_functions { elf_functions {
name: "_Z3fooPiS_" name: "_Z3fooPiS_"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -443,49 +443,65 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker13AddedFunctionEv" name: "_ZN17HighVolumeSpeaker13AddedFunctionEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -438,49 +438,65 @@ global_vars {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZN17HighVolumeSpeaker21global_unprotected_idE" name: "_ZN17HighVolumeSpeaker21global_unprotected_idE"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -415,37 +415,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -423,37 +423,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -479,37 +479,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -433,37 +433,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -432,37 +432,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -432,37 +432,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -431,46 +431,61 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEi" name: "_ZN17HighVolumeSpeaker11BadPracticeEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,34 +419,45 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -414,37 +414,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -35,4 +35,5 @@ builtin_types {
} }
elf_functions { elf_functions {
name: "repro" name: "repro"
binding: Global
} }

View File

@@ -188,7 +188,9 @@ functions {
} }
elf_functions { elf_functions {
name: "CFunction" name: "CFunction"
binding: Global
} }
elf_functions { elf_functions {
name: "_Z3fooPiS_" name: "_Z3fooPiS_"
binding: Global
} }

View File

@@ -210,7 +210,9 @@ functions {
} }
elf_functions { elf_functions {
name: "CFunction" name: "CFunction"
binding: Global
} }
elf_functions { elf_functions {
name: "_Z3fooPiS_" name: "_Z3fooPiS_"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -443,49 +443,65 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker13AddedFunctionEv" name: "_ZN17HighVolumeSpeaker13AddedFunctionEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -438,49 +438,65 @@ global_vars {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeakerD2Ev" name: "_ZN12SuperSpeakerD2Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeakerD0Ev" name: "_ZN16LowVolumeSpeakerD0Ev"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeakerD0Ev" name: "_ZN17HighVolumeSpeakerD0Ev"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZN17HighVolumeSpeaker21global_unprotected_idE" name: "_ZN17HighVolumeSpeaker21global_unprotected_idE"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -419,37 +419,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -415,37 +415,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -423,37 +423,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -479,37 +479,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

View File

@@ -433,37 +433,49 @@ functions {
} }
elf_functions { elf_functions {
name: "_Z26test_virtual_function_callP12SuperSpeaker" name: "_Z26test_virtual_function_callP12SuperSpeaker"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12NotReferenced" name: "_ZN12NotReferenced"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker11SpeakLouderEv" name: "_ZN12SuperSpeaker11SpeakLouderEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi" name: "_ZN12SuperSpeaker18CreateSuperSpeakerEi"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN12SuperSpeaker9SpeakLoudEv" name: "_ZN12SuperSpeaker9SpeakLoudEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker5SpeakEv" name: "_ZN16LowVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN16LowVolumeSpeaker6ListenEv" name: "_ZN16LowVolumeSpeaker6ListenEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker11BadPracticeEf" name: "_ZN17HighVolumeSpeaker11BadPracticeEf"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker5SpeakEv" name: "_ZN17HighVolumeSpeaker5SpeakEv"
binding: Global
} }
elf_functions { elf_functions {
name: "_ZN17HighVolumeSpeaker6ListenEv" name: "_ZN17HighVolumeSpeaker6ListenEv"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV16LowVolumeSpeaker" name: "_ZTV16LowVolumeSpeaker"
binding: Global
} }
elf_objects { elf_objects {
name: "_ZTV17HighVolumeSpeaker" name: "_ZTV17HighVolumeSpeaker"
binding: Global
} }

Some files were not shown because too many files have changed in this diff Show More