soltools/cpp/_macro.c       |    4 ++++
 soltools/mkdepend/include.c |    4 ++++
 soltools/mkdepend/pr.c      |    5 +++++
 3 files changed, 13 insertions(+)

New commits:
commit 707449adc90c80e68176c8df873803ff2f6f70f2
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Thu Nov 10 09:21:21 2022 +0100
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Thu Nov 10 14:50:53 2022 +0100

    -Werror,-Wdeprecated-declarations (sprintf, macOS 13 SDK): soltools
    
    These occurrences of sprintf in C code don't normally trigger the 
deprecation
    warning at least with recent macOS, because macOS by default now enables
    _FORTIFY_SOURCE (see the code setting it in
    
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/usr/include/_types.h
    when originally unset), which for C code hides the declaration of sprintf 
(along
    with its deprecation annotation) in
    
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/usr/include/stdio.h
    with a macro (expanding to __builtin___sprintf_chk) in
    
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.0.sdk/usr/include/secure/_stdio.h.
    But they started to trigger when I did an experimental -fsanitize=address 
build,
    because
    
<https://github.com/llvm/llvm-project/commit/b4f819086a61b5a843f0171a7467c5184ba1b086>
    "Disable source fortification on Darwin with AddressSanitizer" predefines
    -D_FORTIFY_SOURCE=0 in that case.
    
    While there might be ways to clean this code up to use something better 
than the
    deprecated sprintf, don't bother too much with this 3rd-party, 
build-time--only
    code and just silence any potential deprecation warnings.
    
    Change-Id: I9f223a0ad50b2729b5d9af2db588fe9f82d0b07f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142534
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>

diff --git a/soltools/cpp/_macro.c b/soltools/cpp/_macro.c
index ef41b992edae..fbf496b8f781 100644
--- a/soltools/cpp/_macro.c
+++ b/soltools/cpp/_macro.c
@@ -27,6 +27,8 @@
 #endif
 #include <limits.h>
 
+#include <sal/types.h>
+
 #include "cpp.h"
 
 #define NCONCAT 16384
@@ -143,7 +145,9 @@ void
         {
             if (cp != location)
                 *cp++ = ' ';
+            SAL_WNODEPRECATED_DECLARATIONS_PUSH /* sprintf (macOS 13 SDK) */
             sprintf((char *)cp, "%s:%d", s->filename, s->line);
+            SAL_WNODEPRECATED_DECLARATIONS_POP
             cp += strlen((char *)cp);
         }
 
diff --git a/soltools/mkdepend/include.c b/soltools/mkdepend/include.c
index d05a8fd75a7f..7f7955a68984 100644
--- a/soltools/mkdepend/include.c
+++ b/soltools/mkdepend/include.c
@@ -32,6 +32,8 @@ in this Software without prior written authorization from the 
X Consortium.
 #include <string.h>
 #include <assert.h>
 
+#include <sal/types.h>
+
 static void remove_dotdot( char * );
 static int isdot( char const * );
 static int isdotdot( char const * );
@@ -128,7 +130,9 @@ struct inclist *inc_path(char *file, char *include, boolean 
dot, struct Includes
      */
     if (!found)
         for (pp = includedirs; *pp; pp++) {
+            SAL_WNODEPRECATED_DECLARATIONS_PUSH /* sprintf (macOS 13 SDK) */
             sprintf(path, "%s/%s", *pp, include);
+            SAL_WNODEPRECATED_DECLARATIONS_POP
             remove_dotdot(path);
             if ((exists_path(incCollection, path)) && stat(path, &st) == 0 && 
!(st.st_mode & S_IFDIR)) {
                 ip = newinclude(path, include);
diff --git a/soltools/mkdepend/pr.c b/soltools/mkdepend/pr.c
index 7911502ed813..4d30dd3839bd 100644
--- a/soltools/mkdepend/pr.c
+++ b/soltools/mkdepend/pr.c
@@ -29,6 +29,9 @@ in this Software without prior written authorization from the 
X Consortium.
 
 #include "def.h"
 #include <string.h>
+
+#include <sal/types.h>
+
 static size_t pr( struct inclist *ip, char *file,char *base);
 
 extern int  width;
@@ -117,8 +120,10 @@ size_t pr(struct inclist *ip, char *file, char *base)
     len = (int)strlen(ip->i_file)+4;
     if (file != lastfile) {
         lastfile = file;
+        SAL_WNODEPRECATED_DECLARATIONS_PUSH /* sprintf (macOS 13 SDK) */
         sprintf(buf, "\n%s%s%s: \\\n %s", objprefix, base, objsuffix,
             ip->i_file);
+        SAL_WNODEPRECATED_DECLARATIONS_POP
         len = (int)strlen(buf);
     }
     else {

Reply via email to