Skip to content

Commit cfca5f7

Browse files
committed
[lldb] Add Function::GetAddress and redirect some uses
Many calls to Function::GetAddressRange() were not interested in the range itself. Instead they wanted to find the address of the function (its entry point) or the base address for relocation of function-scoped entities. This PR creates a separate function for retrieving this, and changes the existing (non-controversial) uses to call that instead.
1 parent 2a3c08f commit cfca5f7

File tree

22 files changed

+52
-62
lines changed

22 files changed

+52
-62
lines changed

lldb/include/lldb/Symbol/Function.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,11 @@ class Function : public UserID, public SymbolContextScope {
446446

447447
const AddressRange &GetAddressRange() { return m_range; }
448448

449+
/// Return the address of the function (its entry point). This address is also
450+
/// used as a base address for relocation of function-scope entities (blocks
451+
/// and variables).
452+
Address GetAddress() const;
453+
449454
lldb::LanguageType GetLanguage() const;
450455
/// Find the file and line number of the source location of the start of the
451456
/// function. This will use the declaration if present and fall back on the

lldb/source/API/SBBlock.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,7 @@ bool SBBlock::GetDescription(SBStream &description) {
176176
m_opaque_ptr->CalculateSymbolContext(&sc);
177177
if (sc.function) {
178178
m_opaque_ptr->DumpAddressRanges(
179-
&strm,
180-
sc.function->GetAddressRange().GetBaseAddress().GetFileAddress());
179+
&strm, sc.function->GetAddress().GetFileAddress());
181180
}
182181
} else
183182
strm.PutCString("No value");

lldb/source/API/SBFunction.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,7 @@ SBInstructionList SBFunction::GetInstructions(SBTarget target,
119119
if (m_opaque_ptr) {
120120
TargetSP target_sp(target.GetSP());
121121
std::unique_lock<std::recursive_mutex> lock;
122-
ModuleSP module_sp(
123-
m_opaque_ptr->GetAddressRange().GetBaseAddress().GetModule());
122+
ModuleSP module_sp(m_opaque_ptr->GetAddress().GetModule());
124123
if (target_sp && module_sp) {
125124
lock = std::unique_lock<std::recursive_mutex>(target_sp->GetAPIMutex());
126125
const bool force_live_memory = true;

lldb/source/Breakpoint/BreakpointResolver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ void BreakpointResolver::AddLocation(SearchFilter &filter,
325325
// If the line number is before the prologue end, move it there...
326326
bool skipped_prologue = false;
327327
if (skip_prologue && sc.function) {
328-
Address prologue_addr(sc.function->GetAddressRange().GetBaseAddress());
328+
Address prologue_addr = sc.function->GetAddress();
329329
if (prologue_addr.IsValid() && (line_start == prologue_addr)) {
330330
const uint32_t prologue_byte_size = sc.function->GetPrologueByteSize();
331331
if (prologue_byte_size) {

lldb/source/Breakpoint/BreakpointResolverName.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ BreakpointResolverName::SearchCallback(SearchFilter &filter,
339339
if (!sc.block->GetStartAddress(break_addr))
340340
break_addr.Clear();
341341
} else if (sc.function) {
342-
break_addr = sc.function->GetAddressRange().GetBaseAddress();
342+
break_addr = sc.function->GetAddress();
343343
if (m_skip_prologue && break_addr.IsValid()) {
344344
const uint32_t prologue_byte_size = sc.function->GetPrologueByteSize();
345345
if (prologue_byte_size)

lldb/source/Core/SearchFilter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ bool SearchFilter::FunctionPasses(Function &function) {
152152
// This is a slightly cheesy job, but since we don't have finer grained
153153
// filters yet, just checking that the start address passes is probably
154154
// good enough for the base class behavior.
155-
Address addr = function.GetAddressRange().GetBaseAddress();
155+
Address addr = function.GetAddress();
156156
return AddressPasses(addr);
157157
}
158158

lldb/source/Expression/DWARFExpressionList.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,7 @@ bool DWARFExpressionList::MatchesOperand(
126126
if (!sc.function)
127127
return false;
128128

129-
addr_t load_function_start =
130-
sc.function->GetAddressRange().GetBaseAddress().GetFileAddress();
129+
addr_t load_function_start = sc.function->GetAddress().GetFileAddress();
131130
if (load_function_start == LLDB_INVALID_ADDRESS)
132131
return false;
133132

lldb/source/Expression/IRExecutionUnit.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -731,8 +731,7 @@ class LoadAddressResolver {
731731

732732
// If that didn't work, try the function.
733733
if (load_address == LLDB_INVALID_ADDRESS && candidate_sc.function) {
734-
Address addr =
735-
candidate_sc.function->GetAddressRange().GetBaseAddress();
734+
Address addr = candidate_sc.function->GetAddress();
736735
load_address = m_target->GetProcessSP() ? addr.GetLoadAddress(m_target)
737736
: addr.GetFileAddress();
738737
}

lldb/source/Plugins/Architecture/Mips/ArchitectureMips.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ lldb::addr_t ArchitectureMips::GetBreakableLoadAddress(lldb::addr_t addr,
9797
resolve_scope, sc);
9898
Address sym_addr;
9999
if (sc.function)
100-
sym_addr = sc.function->GetAddressRange().GetBaseAddress();
100+
sym_addr = sc.function->GetAddress();
101101
else if (sc.symbol)
102102
sym_addr = sc.symbol->GetAddress();
103103

lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -796,10 +796,8 @@ bool DynamicLoaderDarwin::AlwaysRelyOnEHUnwindInfo(SymbolContext &sym_ctx) {
796796
if (sym_ctx.symbol) {
797797
module_sp = sym_ctx.symbol->GetAddressRef().GetModule();
798798
}
799-
if (module_sp.get() == nullptr && sym_ctx.function) {
800-
module_sp =
801-
sym_ctx.function->GetAddressRange().GetBaseAddress().GetModule();
802-
}
799+
if (module_sp.get() == nullptr && sym_ctx.function)
800+
module_sp = sym_ctx.function->GetAddress().GetModule();
803801
if (module_sp.get() == nullptr)
804802
return false;
805803

lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -856,8 +856,7 @@ bool DynamicLoaderPOSIXDYLD::AlwaysRelyOnEHUnwindInfo(
856856
if (sym_ctx.symbol)
857857
module_sp = sym_ctx.symbol->GetAddressRef().GetModule();
858858
if (!module_sp && sym_ctx.function)
859-
module_sp =
860-
sym_ctx.function->GetAddressRange().GetBaseAddress().GetModule();
859+
module_sp = sym_ctx.function->GetAddress().GetModule();
861860
if (!module_sp)
862861
return false;
863862

lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1883,7 +1883,7 @@ void ClangExpressionDeclMap::AddOneFunction(NameSearchContext &context,
18831883
return;
18841884
}
18851885

1886-
fun_address = function->GetAddressRange().GetBaseAddress();
1886+
fun_address = function->GetAddress();
18871887

18881888
CompilerType copied_function_type = GuardedCopyType(function_clang_type);
18891889
if (copied_function_type) {

lldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ size_t SymbolFileBreakpad::ParseBlocksRecursive(Function &func) {
304304
blocks.push_back(&block);
305305

306306
size_t blocks_added = 0;
307-
addr_t func_base = func.GetAddressRange().GetBaseAddress().GetOffset();
307+
addr_t func_base = func.GetAddress().GetOffset();
308308
CompUnitData &data = m_cu_data->GetEntryRef(comp_unit->GetID()).data;
309309
LineIterator It(*m_objfile_sp, Record::Func, data.bookmark),
310310
End(*m_objfile_sp);
@@ -398,7 +398,7 @@ SymbolFileBreakpad::ResolveSymbolContext(const Address &so_addr,
398398
Block &block = func_sp->GetBlock(true);
399399
sc.block = block.FindInnermostBlockByOffset(
400400
so_addr.GetFileAddress() -
401-
sc.function->GetAddressRange().GetBaseAddress().GetFileAddress());
401+
sc.function->GetAddress().GetFileAddress());
402402
if (sc.block)
403403
result |= eSymbolContextBlock;
404404
}

lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1062,8 +1062,7 @@ static void RemoveFunctionsWithModuleNotEqualTo(const ModuleSP &module_sp,
10621062
SymbolContext sc;
10631063
sc_list.GetContextAtIndex(i, sc);
10641064
if (sc.function) {
1065-
const SectionSP section_sp(
1066-
sc.function->GetAddressRange().GetBaseAddress().GetSection());
1065+
const SectionSP section_sp = sc.function->GetAddress().GetSection();
10671066
if (section_sp->GetModule() != module_sp) {
10681067
sc_list.RemoveContextAtIndex(i);
10691068
continue;

lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -421,8 +421,7 @@ Block &SymbolFileNativePDB::CreateBlock(PdbCompilandSymId block_id) {
421421
lldbassert(func);
422422
lldb::addr_t block_base =
423423
m_index->MakeVirtualAddress(block.Segment, block.CodeOffset);
424-
lldb::addr_t func_base =
425-
func->GetAddressRange().GetBaseAddress().GetFileAddress();
424+
lldb::addr_t func_base = func->GetAddress().GetFileAddress();
426425
if (block_base >= func_base)
427426
child_block->AddRange(Block::Range(block_base - func_base, block.CodeSize));
428427
else {
@@ -1116,8 +1115,7 @@ uint32_t SymbolFileNativePDB::ResolveSymbolContext(
11161115
sc.function = GetOrCreateFunction(csid, *sc.comp_unit).get();
11171116
if (sc.function) {
11181117
Block &block = sc.function->GetBlock(true);
1119-
addr_t func_base =
1120-
sc.function->GetAddressRange().GetBaseAddress().GetFileAddress();
1118+
addr_t func_base = sc.function->GetAddress().GetFileAddress();
11211119
addr_t offset = file_addr - func_base;
11221120
sc.block = block.FindInnermostBlockByOffset(offset);
11231121
}
@@ -1128,8 +1126,7 @@ uint32_t SymbolFileNativePDB::ResolveSymbolContext(
11281126
sc.function = block.CalculateSymbolContextFunction();
11291127
if (sc.function) {
11301128
sc.function->GetBlock(true);
1131-
addr_t func_base =
1132-
sc.function->GetAddressRange().GetBaseAddress().GetFileAddress();
1129+
addr_t func_base = sc.function->GetAddress().GetFileAddress();
11331130
addr_t offset = file_addr - func_base;
11341131
sc.block = block.FindInnermostBlockByOffset(offset);
11351132
}
@@ -1854,8 +1851,7 @@ VariableSP SymbolFileNativePDB::CreateLocalVariable(PdbCompilandSymId scope_id,
18541851
// when lookuping local variables in this scope.
18551852
if (!var_info.location.IsValid())
18561853
var_info.location = DWARFExpressionList(module, DWARFExpression(), nullptr);
1857-
var_info.location.SetFuncFileAddress(
1858-
func->GetAddressRange().GetBaseAddress().GetFileAddress());
1854+
var_info.location.SetFuncFileAddress(func->GetAddress().GetFileAddress());
18591855
CompilandIndexItem *cii = m_index->compilands().GetCompiland(var_id.modi);
18601856
CompUnitSP comp_unit_sp = GetOrCreateCompileUnit(*cii);
18611857
TypeSP type_sp = GetOrCreateType(var_info.type);

lldb/source/Symbol/Block.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,9 @@ void Block::GetDescription(Stream *s, Function *function,
3737

3838
addr_t base_addr = LLDB_INVALID_ADDRESS;
3939
if (target)
40-
base_addr =
41-
function->GetAddressRange().GetBaseAddress().GetLoadAddress(target);
40+
base_addr = function->GetAddress().GetLoadAddress(target);
4241
if (base_addr == LLDB_INVALID_ADDRESS)
43-
base_addr = function->GetAddressRange().GetBaseAddress().GetFileAddress();
42+
base_addr = function->GetAddress().GetFileAddress();
4443

4544
s->Printf(", range%s = ", num_ranges > 1 ? "s" : "");
4645
for (size_t i = 0; i < num_ranges; ++i) {
@@ -305,7 +304,7 @@ bool Block::GetRangeAtIndex(uint32_t range_idx, AddressRange &range) {
305304
Function *function = CalculateSymbolContextFunction();
306305
if (function) {
307306
const Range &vm_range = m_ranges.GetEntryRef(range_idx);
308-
range.GetBaseAddress() = function->GetAddressRange().GetBaseAddress();
307+
range.GetBaseAddress() = function->GetAddress();
309308
range.GetBaseAddress().Slide(vm_range.GetRangeBase());
310309
range.SetByteSize(vm_range.GetByteSize());
311310
return true;
@@ -323,7 +322,7 @@ AddressRanges Block::GetRanges() {
323322
ranges.emplace_back();
324323
auto &range = ranges.back();
325324
const Range &vm_range = m_ranges.GetEntryRef(i);
326-
range.GetBaseAddress() = function->GetAddressRange().GetBaseAddress();
325+
range.GetBaseAddress() = function->GetAddress();
327326
range.GetBaseAddress().Slide(vm_range.GetRangeBase());
328327
range.SetByteSize(vm_range.GetByteSize());
329328
}
@@ -336,7 +335,7 @@ bool Block::GetStartAddress(Address &addr) {
336335

337336
Function *function = CalculateSymbolContextFunction();
338337
if (function) {
339-
addr = function->GetAddressRange().GetBaseAddress();
338+
addr = function->GetAddress();
340339
addr.Slide(m_ranges.GetEntryRef(0).GetRangeBase());
341340
return true;
342341
}
@@ -355,8 +354,7 @@ void Block::AddRange(const Range &range) {
355354
if (log) {
356355
ModuleSP module_sp(m_parent_scope->CalculateSymbolContextModule());
357356
Function *function = m_parent_scope->CalculateSymbolContextFunction();
358-
const addr_t function_file_addr =
359-
function->GetAddressRange().GetBaseAddress().GetFileAddress();
357+
const addr_t function_file_addr = function->GetAddress().GetFileAddress();
360358
const addr_t block_start_addr = function_file_addr + range.GetRangeBase();
361359
const addr_t block_end_addr = function_file_addr + range.GetRangeEnd();
362360
Type *func_type = function->GetType();

lldb/source/Symbol/Function.cpp

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ lldb::addr_t CallEdge::GetLoadAddress(lldb::addr_t unresolved_pc,
133133
Function &caller, Target &target) {
134134
Log *log = GetLog(LLDBLog::Step);
135135

136-
const Address &caller_start_addr = caller.GetAddressRange().GetBaseAddress();
136+
const Address &caller_start_addr = caller.GetAddress();
137137

138138
ModuleSP caller_module_sp = caller_start_addr.GetModule();
139139
if (!caller_module_sp) {
@@ -307,8 +307,7 @@ void Function::GetStartLineSourceInfo(FileSpec &source_file,
307307
return;
308308

309309
LineEntry line_entry;
310-
if (line_table->FindLineEntryByAddress(GetAddressRange().GetBaseAddress(),
311-
line_entry, nullptr)) {
310+
if (line_table->FindLineEntryByAddress(GetAddress(), line_entry, nullptr)) {
312311
line_no = line_entry.line;
313312
source_file = line_entry.GetFile();
314313
}
@@ -407,6 +406,15 @@ CompileUnit *Function::GetCompileUnit() { return m_comp_unit; }
407406

408407
const CompileUnit *Function::GetCompileUnit() const { return m_comp_unit; }
409408

409+
Address Function::GetAddress() const {
410+
if (m_ranges.empty())
411+
return Address();
412+
// We're using a (DWARF-like) convention where the base address of the first
413+
// interval denotes the entry point of the function. If that turns out to be
414+
// insufficient, we can introduce a separate "entry point address" field.
415+
return m_ranges[0].GetBaseAddress();
416+
}
417+
410418
void Function::GetDescription(Stream *s, lldb::DescriptionLevel level,
411419
Target *target) {
412420
ConstString name = GetName();
@@ -476,7 +484,7 @@ Function *Function::CalculateSymbolContextFunction() { return this; }
476484
lldb::DisassemblerSP Function::GetInstructions(const ExecutionContext &exe_ctx,
477485
const char *flavor,
478486
bool prefer_file_cache) {
479-
ModuleSP module_sp(GetAddressRange().GetBaseAddress().GetModule());
487+
ModuleSP module_sp = GetAddress().GetModule();
480488
if (module_sp && exe_ctx.HasTargetScope()) {
481489
return Disassembler::DisassembleRange(
482490
module_sp->GetArchitecture(), nullptr, nullptr, nullptr, flavor,
@@ -593,8 +601,7 @@ uint32_t Function::GetPrologueByteSize() {
593601
if (line_table) {
594602
LineEntry first_line_entry;
595603
uint32_t first_line_entry_idx = UINT32_MAX;
596-
if (line_table->FindLineEntryByAddress(GetAddressRange().GetBaseAddress(),
597-
first_line_entry,
604+
if (line_table->FindLineEntryByAddress(GetAddress(), first_line_entry,
598605
&first_line_entry_idx)) {
599606
// Make sure the first line entry isn't already the end of the prologue
600607
addr_t prologue_end_file_addr = LLDB_INVALID_ADDRESS;

lldb/source/Symbol/SymbolContext.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,7 @@ bool SymbolContext::DumpStopContext(
104104

105105
if (addr.IsValid()) {
106106
const addr_t function_offset =
107-
addr.GetOffset() -
108-
function->GetAddressRange().GetBaseAddress().GetOffset();
107+
addr.GetOffset() - function->GetAddress().GetOffset();
109108
if (!show_function_name) {
110109
// Print +offset even if offset is 0
111110
dumped_something = true;
@@ -698,9 +697,7 @@ LineEntry SymbolContext::GetFunctionStartLineEntry() const {
698697
}
699698

700699
if (function) {
701-
if (function->GetAddressRange()
702-
.GetBaseAddress()
703-
.CalculateSymbolContextLineEntry(line_entry))
700+
if (function->GetAddress().CalculateSymbolContextLineEntry(line_entry))
704701
return line_entry;
705702
}
706703
return LineEntry();
@@ -1226,8 +1223,7 @@ bool SymbolContextList::AppendIfUnique(const SymbolContext &sc,
12261223
continue;
12271224

12281225
if (pos->function) {
1229-
if (pos->function->GetAddressRange().GetBaseAddress() ==
1230-
sc.symbol->GetAddressRef()) {
1226+
if (pos->function->GetAddress() == sc.symbol->GetAddressRef()) {
12311227
// Do we already have a function with this symbol?
12321228
if (pos->symbol == sc.symbol)
12331229
return false;

lldb/source/Symbol/Variable.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -221,8 +221,7 @@ bool Variable::LocationIsValidForFrame(StackFrame *frame) {
221221
TargetSP target_sp(frame->CalculateTarget());
222222

223223
addr_t loclist_base_load_addr =
224-
function->GetAddressRange().GetBaseAddress().GetLoadAddress(
225-
target_sp.get());
224+
function->GetAddress().GetLoadAddress(target_sp.get());
226225
if (loclist_base_load_addr == LLDB_INVALID_ADDRESS)
227226
return false;
228227
// It is a location list. We just need to tell if the location list
@@ -259,7 +258,7 @@ bool Variable::LocationIsValidForAddress(const Address &address) {
259258

260259
if (sc.function) {
261260
addr_t loclist_base_file_addr =
262-
sc.function->GetAddressRange().GetBaseAddress().GetFileAddress();
261+
sc.function->GetAddress().GetFileAddress();
263262
if (loclist_base_file_addr == LLDB_INVALID_ADDRESS)
264263
return false;
265264
// It is a location list. We just need to tell if the location list
@@ -450,8 +449,7 @@ bool Variable::DumpLocations(Stream *s, const Address &address) {
450449

451450
const addr_t file_addr = address.GetFileAddress();
452451
if (sc.function) {
453-
addr_t loclist_base_file_addr =
454-
sc.function->GetAddressRange().GetBaseAddress().GetFileAddress();
452+
addr_t loclist_base_file_addr = sc.function->GetAddress().GetFileAddress();
455453
if (loclist_base_file_addr == LLDB_INVALID_ADDRESS)
456454
return false;
457455
return m_location_list.DumpLocations(s, eDescriptionLevelBrief,

lldb/source/Target/StackFrame.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,8 +1097,7 @@ llvm::Error StackFrame::GetFrameBaseValue(Scalar &frame_base) {
10971097
addr_t loclist_base_addr = LLDB_INVALID_ADDRESS;
10981098
if (!m_sc.function->GetFrameBaseExpression().IsAlwaysValidSingleExpr())
10991099
loclist_base_addr =
1100-
m_sc.function->GetAddressRange().GetBaseAddress().GetLoadAddress(
1101-
exe_ctx.GetTargetPtr());
1100+
m_sc.function->GetAddress().GetLoadAddress(exe_ctx.GetTargetPtr());
11021101

11031102
llvm::Expected<Value> expr_value =
11041103
m_sc.function->GetFrameBaseExpression().Evaluate(

lldb/source/Target/ThreadPlanStepInRange.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ bool ThreadPlanStepInRange::ShouldStop(Event *event_ptr) {
250250
eSymbolContextSymbol);
251251

252252
if (sc.function) {
253-
func_start_address = sc.function->GetAddressRange().GetBaseAddress();
253+
func_start_address = sc.function->GetAddress();
254254
if (curr_addr == func_start_address.GetLoadAddress(&GetTarget()))
255255
bytes_to_skip = sc.function->GetPrologueByteSize();
256256
} else if (sc.symbol) {

lldb/source/ValueObject/ValueObjectVariable.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,7 @@ bool ValueObjectVariable::UpdateValue() {
160160
variable->CalculateSymbolContext(&sc);
161161
if (sc.function)
162162
loclist_base_load_addr =
163-
sc.function->GetAddressRange().GetBaseAddress().GetLoadAddress(
164-
target);
163+
sc.function->GetAddress().GetLoadAddress(target);
165164
}
166165
Value old_value(m_value);
167166
llvm::Expected<Value> maybe_value = expr_list.Evaluate(

0 commit comments

Comments
 (0)