[compiler-rt] [compiler-rt] Define `__STDC_FORMAT_MACROS` to ensure `PRId64` is available (PR #102980)
Mosè Giordano via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 12 14:17:07 PDT 2024
https://github.com/giordano created https://github.com/llvm/llvm-project/pull/102980
In https://github.com/JuliaPackaging/Yggdrasil/pull/9246#issuecomment-2284894139 we ran into
```
[20:54:03] In file included from /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.cpp:9:
[20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h: In member function ‘void scudo::TimingManager::printImpl(scudo::ScopedString&, scudo::u32, scudo::u32)’:
[20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h:182:21: error: expected ‘)’ before ‘PRId64’
[20:54:03] Str.append("%14" PRId64 ".%" PRId64 "(ns) %-11s", Integral, Fraction, " ");
[20:54:03] ~ ^~~~~~~
[20:54:03] )
[20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h:182:16: warning: conversion lacks type at end of format [-Wformat=]
[20:54:03] Str.append("%14" PRId64 ".%" PRId64 "(ns) %-11s", Integral, Fraction, " ");
[20:54:03] ^~~~~
[20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h:182:16: warning: too many arguments for format [-Wformat-extra-args]
[20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h:186:23: error: expected ‘)’ before ‘PRId64’
[20:54:03] Str.append("%s (%" PRId64 ")\n", Timers[HandleId].Name, Occurrence);
[20:54:03] ~ ^~~~~~~
[20:54:03] )
[20:54:03] /workspace/srcdir/compiler-rt-17.0.6.src/lib/scudo/standalone/timing.h:186:16: warning: spurious trailing ‘%’ in format [-Wformat=]
[20:54:03] Str.append("%s (%" PRId64 ")\n", Timers[HandleId].Name, Occurrence);
[20:54:03] ^~~~~~~
```
when compiling compiler-rt with GCC 8. This was resolved by defining `__STDC_FORMAT_MACROS`.
>From 13aa24c226a5aca1367353ec28f4e174d2ec6af2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mos=C3=A8=20Giordano?= <giordano at users.noreply.github.com>
Date: Mon, 12 Aug 2024 22:14:58 +0100
Subject: [PATCH] [compiler-rt] Define `__STDC_FORMAT_MACROS` to ensure
`PRId64` is available
---
compiler-rt/lib/scudo/standalone/timing.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/compiler-rt/lib/scudo/standalone/timing.h b/compiler-rt/lib/scudo/standalone/timing.h
index de741edbff5fff..e125d6bdf558e7 100644
--- a/compiler-rt/lib/scudo/standalone/timing.h
+++ b/compiler-rt/lib/scudo/standalone/timing.h
@@ -14,6 +14,8 @@
#include "string_utils.h"
#include "thread_annotations.h"
+// Ensure PRId64 macro is available
+#define __STDC_FORMAT_MACROS 1
#include <inttypes.h>
#include <string.h>
More information about the llvm-commits
mailing list