For this code, Clang produces the following warning:

    ../stdio/_scprintf.c:32:20: warning: function 'init_scprintf' has internal 
linkage but is not defined [-Wundefined-internal]

To avoid this ambiguity, make the symbol external, and add it
a namespace prefix.

Signed-off-by: Martin Storsjö <[email protected]>
---
 mingw-w64-crt/stdio/_scprintf.c  | 8 ++++----
 mingw-w64-crt/stdio/_scwprintf.c | 8 ++++----
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/mingw-w64-crt/stdio/_scprintf.c b/mingw-w64-crt/stdio/_scprintf.c
index 42f2e5f23..8dabf95df 100644
--- a/mingw-w64-crt/stdio/_scprintf.c
+++ b/mingw-w64-crt/stdio/_scprintf.c
@@ -29,9 +29,9 @@ int (__cdecl *__MINGW_IMP_SYMBOL(_scprintf))(const char * 
__restrict__, ...) = _
 
 #include <msvcrt.h>
 
-static int __cdecl init_scprintf(const char * __restrict__ format, ...);
+int __cdecl __mingw_init_scprintf(const char * __restrict__ format, ...);
 
-int (__cdecl *__MINGW_IMP_SYMBOL(_scprintf))(const char * __restrict__, ...) = 
init_scprintf;
+int (__cdecl *__MINGW_IMP_SYMBOL(_scprintf))(const char * __restrict__, ...) = 
__mingw_init_scprintf;
 
 __attribute__((used))
 static void resolve_scprintf(void)
@@ -52,8 +52,8 @@ static void resolve_scprintf(void)
  * this source file is used only on i386, so do this function redirect via 
inline i386 assembly */
 #define ASM_SYM(sym) __MINGW64_STRINGIFY(__MINGW_USYMBOL(sym))
 asm (
-".def\t" ASM_SYM(init_scprintf) ";\t.scl\t3;\t.type\t32;\t.endef\n"
-ASM_SYM(init_scprintf) ":\n\t"
+".def\t" ASM_SYM(__mingw_init_scprintf) ";\t.scl\t3;\t.type\t32;\t.endef\n"
+ASM_SYM(__mingw_init_scprintf) ":\n\t"
     "pushal\n\t"
     "call\t" ASM_SYM(resolve_scprintf) "\n\t"
     "popal\n\t"
diff --git a/mingw-w64-crt/stdio/_scwprintf.c b/mingw-w64-crt/stdio/_scwprintf.c
index a3da9b8f0..e92479fd8 100644
--- a/mingw-w64-crt/stdio/_scwprintf.c
+++ b/mingw-w64-crt/stdio/_scwprintf.c
@@ -29,9 +29,9 @@ int (__cdecl *__MINGW_IMP_SYMBOL(_scwprintf))(const wchar_t * 
__restrict__, ...)
 
 #include <msvcrt.h>
 
-static int __cdecl init_scwprintf(const wchar_t * __restrict__ format, ...);
+int __cdecl __mingw_init_scwprintf(const wchar_t * __restrict__ format, ...);
 
-int (__cdecl *__MINGW_IMP_SYMBOL(_scwprintf))(const wchar_t * __restrict__, 
...) = init_scwprintf;
+int (__cdecl *__MINGW_IMP_SYMBOL(_scwprintf))(const wchar_t * __restrict__, 
...) = __mingw_init_scwprintf;
 
 __attribute__((used))
 static void resolve_scwprintf(void)
@@ -52,8 +52,8 @@ static void resolve_scwprintf(void)
  * this source file is used only on i386, so do this function redirect via 
inline i386 assembly */
 #define ASM_SYM(sym) __MINGW64_STRINGIFY(__MINGW_USYMBOL(sym))
 asm (
-".def\t" ASM_SYM(init_scwprintf) ";\t.scl\t3;\t.type\t32;\t.endef\n"
-ASM_SYM(init_scwprintf) ":\n\t"
+".def\t" ASM_SYM(__mingw_init_scwprintf) ";\t.scl\t3;\t.type\t32;\t.endef\n"
+ASM_SYM(__mingw_init_scwprintf) ":\n\t"
     "pushal\n\t"
     "call\t" ASM_SYM(resolve_scwprintf) "\n\t"
     "popal\n\t"
-- 
2.43.0



_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to