summaryrefslogtreecommitdiff
path: root/src/vhdl/sem_expr.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/sem_expr.ads')
-rw-r--r--src/vhdl/sem_expr.ads10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/vhdl/sem_expr.ads b/src/vhdl/sem_expr.ads
index a0422e7..ef0afad 100644
--- a/src/vhdl/sem_expr.ads
+++ b/src/vhdl/sem_expr.ads
@@ -160,16 +160,20 @@ package Sem_Expr is
-- one-dimensional character array type.
procedure Sem_String_Choices_Range (Choice_Chain : Iir; Sel : Iir);
+ type Compatibility_Level is
+ (Not_Compatible, Via_Conversion, Fully_Compatible);
+
-- LEFT are RIGHT must be really a type (not a subtype).
function Are_Basetypes_Compatible (Left: Iir; Right: Iir)
- return Boolean;
+ return Compatibility_Level;
-- Return TRUE iif types of LEFT and RIGHT are compatible.
function Are_Nodes_Compatible (Left: Iir; Right: Iir)
- return Boolean;
+ return Compatibility_Level;
-- Return TRUE iff the type of EXPR is compatible with A_TYPE
- function Is_Expr_Compatible (A_Type : Iir; Expr : Iir) return Boolean;
+ function Is_Expr_Compatible (A_Type : Iir; Expr : Iir)
+ return Compatibility_Level;
-- LIST1, LIST2 are either a type node or an overload list of types.
-- Return THE type which is compatible with LIST1 are LIST2.