From 5e5030df8f223fb800d5ad7735c419a16b37dfaf Mon Sep 17 00:00:00 2001 From: Bob Duff Date: Fri, 10 Dec 2021 15:53:04 -0500 Subject: [Ada] treepr: Print value of static expression gcc/ada/ * treepr.adb (Print_Node_Ref): Print the value if available. --- gcc/ada/treepr.adb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'gcc') diff --git a/gcc/ada/treepr.adb b/gcc/ada/treepr.adb index c1e71b1..ad2bbf0 100644 --- a/gcc/ada/treepr.adb +++ b/gcc/ada/treepr.adb @@ -37,6 +37,7 @@ with Namet; use Namet; with Nlists; use Nlists; with Output; use Output; with Seinfo; use Seinfo; +with Sem_Eval; use Sem_Eval; with Sinfo; use Sinfo; with Sinfo.Nodes; use Sinfo.Nodes; with Sinfo.Utils; use Sinfo.Utils; @@ -1642,6 +1643,24 @@ package body Treepr is end if; end if; + -- If this is an integer-like expression whose value is known, print + -- that value. + + if Nkind (N) in N_Subexpr + and then Compile_Time_Known_Value (N) + and then Present (Etype (N)) + and then not Is_Array_Type (Etype (N)) + then + if Is_Entity_Name (N) -- e.g. enumeration literal + or else Nkind (N) in N_Integer_Literal + | N_Character_Literal + | N_Unchecked_Type_Conversion + then + Print_Str (" val = "); + UI_Write (Expr_Value (N)); + end if; + end if; + if Nkind (N) in N_Entity then Write_Str (" (Entity_Id="); else -- cgit v1.1