diff --git a/src/codegen.cpp b/src/codegen.cpp index e4f3faa..8776f91 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -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(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 diff --git a/test.c b/test.c index ace45a0..cf3f89a 100644 --- a/test.c +++ b/test.c @@ -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; } \ No newline at end of file