diff options
| author | Michael Williamson <mike@zwobble.org> | 2025-03-08 13:07:26 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2025-03-08 13:07:26 +0000 |
| commit | 0b6048e7557748be50881d348448af77f53892fc (patch) | |
| tree | 319ae94cb3c3d13189bd79640b3debb138d27b3d /src/main/java | |
| parent | c25a7bd63bc7c056c79f234e86fb4c30fd44f0bf (diff) | |
Compile Patio mutable data declarations into LLVM IR
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java index 4d838b34..a93b9337 100644 --- a/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java +++ b/src/main/java/org/shedlang/compiler/backends/llvm/codegen/PatioToLlvm.java @@ -170,7 +170,8 @@ public class PatioToLlvm { generateDataElementImmutableDefinition(patioDataElementImmutableDefinition, context); case PatioDataElementMutableDeclaration patioDataElementMutableDeclaration -> - throw new UnsupportedOperationException("TODO"); + // TODO: how to test this? + generateDataElementMutableDeclaration(patioDataElementMutableDeclaration, context); case PatioDataElementMutableDefinition patioDataElementMutableDefinition -> generateDataElementMutableDefinition(patioDataElementMutableDefinition, context); @@ -206,6 +207,23 @@ public class PatioToLlvm { )); } + private static PatioToLlvmModuleContext generateDataElementMutableDeclaration( + PatioDataElementMutableDeclaration patioDataElementMutableDeclaration, + PatioToLlvmModuleContext context + ) { + return context.addTopLevelEntity(new LlvmGlobalDefinition( + patioDataElementMutableDeclaration.name(), + patioDataLayoutToLlvmType( + patioDataElementMutableDeclaration.layout(), + context.target() + ), + Optional.empty(), + false, + false, + true + )); + } + private static PatioToLlvmModuleContext generateDataElementMutableDefinition( PatioDataElementMutableDefinition patioDataElementMutableDefinition, PatioToLlvmModuleContext context |
