aboutsummaryrefslogtreecommitdiffstats
path: root/src/ortho/llvm/ortho_llvm.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2015-09-07 05:11:11 +0200
committerTristan Gingold <tgingold@free.fr>2015-09-07 05:11:11 +0200
commita1a45009a1f7515f60aa7ffa3ab58366d75a986a (patch)
tree63c94ea0ca886b41411de5500c3db58076ce070c /src/ortho/llvm/ortho_llvm.ads
parent8520993b4d1eadefa488dfc96dff25333f1b19db (diff)
downloadghdl-a1a45009a1f7515f60aa7ffa3ab58366d75a986a.tar.gz
ghdl-a1a45009a1f7515f60aa7ffa3ab58366d75a986a.tar.bz2
ghdl-a1a45009a1f7515f60aa7ffa3ab58366d75a986a.zip
llvm: handle union (field selection, debug info).
Diffstat (limited to 'src/ortho/llvm/ortho_llvm.ads')
-rw-r--r--src/ortho/llvm/ortho_llvm.ads6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/ortho/llvm/ortho_llvm.ads b/src/ortho/llvm/ortho_llvm.ads
index 69a850fb7..4cd0feba2 100644
--- a/src/ortho/llvm/ortho_llvm.ads
+++ b/src/ortho/llvm/ortho_llvm.ads
@@ -566,14 +566,17 @@ private
type OF_Kind is (OF_None, OF_Record, OF_Union);
type O_Fnode (Kind : OF_Kind := OF_None) is record
+ -- Type of the field.
Ftype : O_Tnode;
case Kind is
when OF_None =>
null;
when OF_Record =>
+ -- Field index (starting from 0).
Index : Natural;
when OF_Union =>
Utype : TypeRef;
+ Ptr_Type : TypeRef;
end case;
end record;
@@ -648,6 +651,9 @@ private
-- Record and union builder.
type O_Element_List is record
+ Kind : OF_Kind;
+
+ -- Number of fields.
Nbr_Elements : Natural;
-- For record: the access to the incomplete (but named) type.