From 8cca0b24e2c19eedecffdeec89a8a2898da1e362 Mon Sep 17 00:00:00 2001
From: gingold <gingold@b72b5c32-5f01-0410-b925-b5c7b92870f7>
Date: Wed, 30 Dec 2009 13:28:25 +0000
Subject: Fix fprintf call on x86-64. From Thomas Sailer.

---
 translate/grt/grt-cbinding.c | 6 ++++++
 translate/grt/grt-stats.adb  | 8 +++-----
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/translate/grt/grt-cbinding.c b/translate/grt/grt-cbinding.c
index 8885e1232..1b75fcfa0 100644
--- a/translate/grt/grt-cbinding.c
+++ b/translate/grt/grt-cbinding.c
@@ -43,6 +43,12 @@ __ghdl_fprintf_g (FILE *stream, double val)
   fprintf (stream, "%g", val);
 }
 
+void
+__ghdl_fprintf_clock (FILE *stream, int a, int b)
+{
+  fprintf (stream, "%3d.%03d", a, b);
+}
+
 #if 1
 void
 __gnat_last_chance_handler (void)
diff --git a/translate/grt/grt-stats.adb b/translate/grt/grt-stats.adb
index 13a939aac..cf5674eec 100644
--- a/translate/grt/grt-stats.adb
+++ b/translate/grt/grt-stats.adb
@@ -71,10 +71,8 @@ package body Grt.Stats is
 
    procedure Put (Stream : FILEs; Val : Clock_T)
    is
-      Fmt : constant String := "%3d.%03d" & Character'Val (0);
-
-      procedure fprintf (Stream : FILEs; Fmt : Address; A, B : Clock_T);
-      pragma Import (C, fprintf);
+      procedure Fprintf_Clock (Stream : FILEs; A, B : Clock_T);
+      pragma Import (C, Fprintf_Clock, "__ghdl_fprintf_clock");
 
       Sec : Clock_T;
       Ms : Clock_T;
@@ -84,7 +82,7 @@ package body Grt.Stats is
       --  Avoid overflow.
       Ms := ((Val mod One_Second) * 1000) / One_Second;
 
-      fprintf (Stream, Fmt'Address, Sec, Ms);
+      Fprintf_Clock (Stream, Sec, Ms);
    end Put;
 
    procedure Put (Stream : FILEs; T : Time_Stats) is
-- 
cgit v1.2.3