aboutsummaryrefslogtreecommitdiffstats
path: root/cfrontend
diff options
context:
space:
mode:
Diffstat (limited to 'cfrontend')
-rw-r--r--cfrontend/PrintClight.ml13
1 files changed, 11 insertions, 2 deletions
diff --git a/cfrontend/PrintClight.ml b/cfrontend/PrintClight.ml
index e63067a9..0e735d2d 100644
--- a/cfrontend/PrintClight.ml
+++ b/cfrontend/PrintClight.ml
@@ -23,9 +23,18 @@ open Cop
open PrintCsyntax
open Clight
-(* Naming temporaries *)
+(* Naming temporaries.
+ Some temporaries are obtained by lifting variables in SimplLocals.
+ For these we use a meaningful name "$var", as found in the table of
+ atoms. Other temporaries are generated during SimplExpr, and are
+ not in the table of atoms. We print them as "$NNN" (a unique
+ integer). *)
-let temp_name (id: AST.ident) = "$" ^ Z.to_string (Z.Zpos id)
+let temp_name (id: AST.ident) =
+ try
+ "$" ^ Hashtbl.find string_of_atom id
+ with Not_found ->
+ Printf.sprintf "$%d" (P.to_int id)
(* Declarator (identifier + type) -- reuse from PrintCsyntax *)