diff options
author | Tristan Gingold | 2015-06-12 08:03:24 +0200 |
---|---|---|
committer | Tristan Gingold | 2015-06-12 08:03:24 +0200 |
commit | 8a3f67db595be25637b4edc65f18138b48ccdac6 (patch) | |
tree | 7988fec65793fd9b71a9030a42839f40879f5cbf /src/ortho | |
parent | e726be425740402ab57e91a66d2cd8b812974bf4 (diff) | |
download | ghdl-8a3f67db595be25637b4edc65f18138b48ccdac6.tar.gz ghdl-8a3f67db595be25637b4edc65f18138b48ccdac6.tar.bz2 ghdl-8a3f67db595be25637b4edc65f18138b48ccdac6.zip |
ortho: allow selected element from an union.
Minor cleanups.
Diffstat (limited to 'src/ortho')
-rw-r--r-- | src/ortho/debug/ortho_debug.adb | 4 | ||||
-rw-r--r-- | src/ortho/gcc/ortho_gcc.ads | 4 | ||||
-rw-r--r-- | src/ortho/llvm/ortho_llvm.ads | 4 | ||||
-rw-r--r-- | src/ortho/ortho_nodes.common.ads | 4 |
4 files changed, 9 insertions, 7 deletions
diff --git a/src/ortho/debug/ortho_debug.adb b/src/ortho/debug/ortho_debug.adb index ca67b33..b1ec1b6 100644 --- a/src/ortho/debug/ortho_debug.adb +++ b/src/ortho/debug/ortho_debug.adb @@ -967,7 +967,9 @@ package body Ortho_Debug is is subtype O_Lnode_Selected_Element is O_Lnode_Type (OL_Selected_Element); begin - if Rec.Rtype.Kind /= ON_Record_Type then + if Rec.Rtype.Kind /= ON_Record_Type + and then Rec.Rtype.Kind /= ON_Union_Type + then raise Type_Error; end if; if Rec.Rtype /= El.Parent then diff --git a/src/ortho/gcc/ortho_gcc.ads b/src/ortho/gcc/ortho_gcc.ads index 7ed83d2..6f43be4 100644 --- a/src/ortho/gcc/ortho_gcc.ads +++ b/src/ortho/gcc/ortho_gcc.ads @@ -290,8 +290,8 @@ package Ortho_Gcc is function New_Slice (Arr : O_Lnode; Res_Type : O_Tnode; Index : O_Enode) return O_Lnode; - -- Get an element of a record. - -- Type of REC must be a record type. + -- Get an element of a record or a union. + -- Type of REC must be a record or a union type. function New_Selected_Element (Rec : O_Lnode; El : O_Fnode) return O_Lnode; diff --git a/src/ortho/llvm/ortho_llvm.ads b/src/ortho/llvm/ortho_llvm.ads index 931977b..69a850f 100644 --- a/src/ortho/llvm/ortho_llvm.ads +++ b/src/ortho/llvm/ortho_llvm.ads @@ -313,8 +313,8 @@ package Ortho_LLVM is function New_Slice (Arr : O_Lnode; Res_Type : O_Tnode; Index : O_Enode) return O_Lnode; - -- Get an element of a record. - -- Type of REC must be a record type. + -- Get an element of a record or a union. + -- Type of REC must be a record or a union type. function New_Selected_Element (Rec : O_Lnode; El : O_Fnode) return O_Lnode; diff --git a/src/ortho/ortho_nodes.common.ads b/src/ortho/ortho_nodes.common.ads index 1781874..f9caf32 100644 --- a/src/ortho/ortho_nodes.common.ads +++ b/src/ortho/ortho_nodes.common.ads @@ -284,8 +284,8 @@ package ORTHO_NODES is function New_Slice (Arr : O_Lnode; Res_Type : O_Tnode; Index : O_Enode) return O_Lnode; - -- Get an element of a record. - -- Type of REC must be a record type. + -- Get an element of a record or a union. + -- Type of REC must be a record or a union type. function New_Selected_Element (Rec : O_Lnode; El : O_Fnode) return O_Lnode; |