|
|
|
|
@ -610,6 +610,10 @@ ir::Value* IRGenImpl::GetLValAddress(SysYParser::LValContext* ctx) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!indices.empty()) {
|
|
|
|
|
if (base_ptr->GetType() && base_ptr->GetType()->IsPointer() &&
|
|
|
|
|
base_ptr->GetType()->GetElementType()->IsPointer()) {
|
|
|
|
|
base_ptr = builder_.CreateLoad(base_ptr, module_.GetContext().NextTemp());
|
|
|
|
|
}
|
|
|
|
|
return builder_.CreateGep(base_ptr, std::move(indices),
|
|
|
|
|
module_.GetContext().NextTemp());
|
|
|
|
|
}
|
|
|
|
|
|