summaryrefslogtreecommitdiff
path: root/ortho/llvm/ortho_code_main.adb
diff options
context:
space:
mode:
authorTristan Gingold2014-03-09 10:25:08 +0100
committerTristan Gingold2014-03-09 10:25:08 +0100
commit6f66ce096fed773c00a3278fb3aced424fa3e5be (patch)
treed23a5dcacc598c45983d51ba5491706906a98513 /ortho/llvm/ortho_code_main.adb
parent6a8dd0ee9bd3ec2ffe6ff7fa821af92968008e55 (diff)
downloadghdl-6f66ce096fed773c00a3278fb3aced424fa3e5be.tar.gz
ghdl-6f66ce096fed773c00a3278fb3aced424fa3e5be.tar.bz2
ghdl-6f66ce096fed773c00a3278fb3aced424fa3e5be.zip
Remove ortho_llvm-main.
Diffstat (limited to 'ortho/llvm/ortho_code_main.adb')
-rw-r--r--ortho/llvm/ortho_code_main.adb22
1 files changed, 18 insertions, 4 deletions
diff --git a/ortho/llvm/ortho_code_main.adb b/ortho/llvm/ortho_code_main.adb
index eec8490..300bb32 100644
--- a/ortho/llvm/ortho_code_main.adb
+++ b/ortho/llvm/ortho_code_main.adb
@@ -18,8 +18,9 @@
with Ada.Command_Line; use Ada.Command_Line;
with Ada.Unchecked_Deallocation;
+with Ada.Unchecked_Conversion;
with Ada.Text_IO; use Ada.Text_IO;
-with Ortho_LLVM.Main; use Ortho_LLVM.Main;
+
with Ortho_Front; use Ortho_Front;
with LLVM.BitWriter;
with LLVM.Core; use LLVM.Core;
@@ -28,11 +29,11 @@ with LLVM.Target; use LLVM.Target;
with LLVM.TargetMachine; use LLVM.TargetMachine;
with LLVM.Analysis;
with LLVM.Transforms.Scalar;
+with Ortho_LLVM; use Ortho_LLVM;
with Interfaces;
with Interfaces.C; use Interfaces.C;
-procedure Ortho_Code_Main
-is
+procedure Ortho_Code_Main is
-- Name of the output filename (given by option '-o').
Output : String_Acc := null;
@@ -84,6 +85,19 @@ is
end if;
end Dump_Llvm;
+ function To_String (C : Cstring) return String is
+ function Strlen (C : Cstring) return Natural;
+ pragma Import (C, Strlen);
+
+ subtype Fat_String is String (Positive);
+ type Fat_String_Acc is access Fat_String;
+
+ function To_Fat_String_Acc is new
+ Ada.Unchecked_Conversion (Cstring, Fat_String_Acc);
+ begin
+ return To_Fat_String_Acc (C)(1 .. Strlen (C));
+ end To_String;
+
Codegen : CodeGenFileType := ObjectFile;
Msg : aliased Cstring;
@@ -235,7 +249,7 @@ begin
-- Target_Data := CreateTargetData (Triple);
end if;
- Ortho_LLVM.Main.Init;
+ Ortho_LLVM.Init;
Set_Exit_Status (Failure);