ports/lang/ghc-8.10.7/patches/patch-rts_Stats_c

55 lines
1.7 KiB
Text
Raw Normal View History

2023-08-16 22:26:55 +00:00
$OpenBSD: patch-rts_Stats_c,v 1.1.1.1 2023/03/09 18:59:42 kili Exp $
Kill a use of %n format specifier.
Index: rts/Stats.c
--- rts/Stats.c.orig
+++ rts/Stats.c
@@ -69,7 +69,7 @@ static Time *GC_coll_cpu = NULL;
static Time *GC_coll_elapsed = NULL;
static Time *GC_coll_max_pause = NULL;
-static void statsPrintf( char *s, ... ) GNUC3_ATTRIBUTE(format (PRINTF, 1, 2));
+static int statsPrintf( char *s, ... ) GNUC3_ATTRIBUTE(format (PRINTF, 1, 2));
static void statsFlush( void );
static void statsClose( void );
@@ -1024,8 +1024,10 @@ static void report_summary(const RTSSummaryStats* sum)
for (g = 0; g < RtsFlags.GcFlags.generations; g++) {
int prefix_length = 0;
- statsPrintf("%*s" "gen[%" FMT_Word32 "%n",
- col_width[0], "", g, &prefix_length);
+ prefix_length = statsPrintf("%*s" "gen[%" FMT_Word32,
+ col_width[0], "", g);
+ if (prefix_length < 0)
+ prefix_length = 0;
prefix_length -= col_width[0];
int suffix_length = col_width[1] + prefix_length;
suffix_length =
@@ -1735,19 +1737,21 @@ void getRTSStats( RTSStats *s )
Dumping stuff in the stats file, or via the debug message interface
-------------------------------------------------------------------------- */
-void
+int
statsPrintf( char *s, ... )
{
+ int ret = 0;
FILE *sf = RtsFlags.GcFlags.statsFile;
va_list ap;
va_start(ap,s);
if (sf == NULL) {
- vdebugBelch(s,ap);
+ ret = vdebugBelch(s,ap);
} else {
- vfprintf(sf, s, ap);
+ ret = vfprintf(sf, s, ap);
}
va_end(ap);
+ return ret;
}
static void