From 6f216f30c2bf90dabf180f0dbc08ec0e9e2fdbf1 Mon Sep 17 00:00:00 2001 From: Konstantin Zhuravlyov Date: Thu, 13 Oct 2016 12:43:19 -0400 Subject: [PATCH] Initialize symbol's agent member for agent allocation symbols Change-Id: I0ee0e07e4132ca13b3ecf7469c59ca327ff3c76d --- runtime/hsa-runtime/loader/executable.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runtime/hsa-runtime/loader/executable.cpp b/runtime/hsa-runtime/loader/executable.cpp index ea457c1c7c..7a1a239993 100644 --- a/runtime/hsa-runtime/loader/executable.cpp +++ b/runtime/hsa-runtime/loader/executable.cpp @@ -729,7 +729,7 @@ hsa_status_t ExecutableImpl::DefineAgentExternalVariable( return HSA_STATUS_ERROR_VARIABLE_ALREADY_DEFINED; } - agent_symbols_.insert( + auto insert_status = agent_symbols_.insert( std::make_pair(std::make_pair(std::string(name), agent), new VariableSymbol(true, std::string(name), @@ -742,6 +742,9 @@ hsa_status_t ExecutableImpl::DefineAgentExternalVariable( false, // TODO: const. true, reinterpret_cast(address)))); + assert(insert_status.second); + insert_status.first->second->agent = agent; + return HSA_STATUS_SUCCESS; } @@ -1231,6 +1234,7 @@ hsa_status_t ExecutableImpl::LoadDefinitionSymbol(hsa_agent_t agent, code::Symbo } assert(symbol); if (isAgent) { + symbol->agent = agent; agent_symbols_.insert(std::make_pair(std::make_pair(sym->Name(), agent), symbol)); } else { program_symbols_.insert(std::make_pair(sym->Name(), symbol));