aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth/synth-expr.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/synth/synth-expr.adb')
-rw-r--r--src/synth/synth-expr.adb13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/synth/synth-expr.adb b/src/synth/synth-expr.adb
index c1fe74d81..9d71145b6 100644
--- a/src/synth/synth-expr.adb
+++ b/src/synth/synth-expr.adb
@@ -1912,11 +1912,14 @@ package body Synth.Expr is
declare
Imp : constant Node := Get_Implementation (Expr);
begin
- if Get_Implicit_Definition (Imp) /= Iir_Predefined_None then
- return Synth_Predefined_Function_Call (Syn_Inst, Expr);
- else
- return Synth_User_Function_Call (Syn_Inst, Expr);
- end if;
+ case Get_Implicit_Definition (Imp) is
+ when Iir_Predefined_Pure_Functions =>
+ return Synth_Operator_Function_Call (Syn_Inst, Expr);
+ when Iir_Predefined_None =>
+ return Synth_User_Function_Call (Syn_Inst, Expr);
+ when others =>
+ return Synth_Predefined_Function_Call (Syn_Inst, Expr);
+ end case;
end;
when Iir_Kind_Aggregate =>
return Synth_Aggregate (Syn_Inst, Expr, Expr_Type);