Fix bug in deref

This commit is contained in:
Sofia 2026-04-14 00:09:36 +03:00
parent d4016e3ab7
commit acd1e5d39b
2 changed files with 2 additions and 3 deletions

View File

@ -119,8 +119,7 @@ namespace AST {
codegen::StackValue DerefExpression::codegen(codegen::Builder& builder, codegen::Scope& scope) {
auto value = this->m_expr->codegen(builder, scope);
if (value.ty->m_kind == types::TypeKind::Pointer) {
auto ptr_ty = dynamic_cast<types::PointerType*>(value.ty.get());
auto loaded = ptr_ty->m_inner->load(builder, value.value);
auto loaded = value.ty->load(builder, value.value);
return codegen::StackValue{
loaded.first,
loaded.second

2
test.c
View File

@ -10,6 +10,6 @@ int main() {
printf("10th fibonacci number is %d!", fibonacci(10));
char res = 0;
char* test = &res;
(*test) = 15;
(*test) = 20;
return res;
}