<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-legacy-support.

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/ca253f67046b7a6104631d7cbc9acdbd04e7319c">https://github.com/macports/macports-legacy-support/commit/ca253f67046b7a6104631d7cbc9acdbd04e7319c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit ca253f67046b7a6104631d7cbc9acdbd04e7319c
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Fri Dec 6 21:36:28 2024 -0800

<span style='display:block; white-space:pre;color:#404040;'>    Try to fix st?ncpy_chk warnings
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    These tests are intentionally performing illegal operations to verify
</span><span style='display:block; white-space:pre;color:#404040;'>    that the checks work as expected.  We try to suppress related warnings
</span><span style='display:block; white-space:pre;color:#404040;'>    as much as possible.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    With these changes, all tested versions of clang are fully
</span><span style='display:block; white-space:pre;color:#404040;'>    well-behaved, in that they emit no warnings and apply the checks as
</span><span style='display:block; white-space:pre;color:#404040;'>    expected.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Gcc is another story, where some versions fail to suppress the
</span><span style='display:block; white-space:pre;color:#404040;'>    warnings, and some versions actually get false errors.  The current
</span><span style='display:block; white-space:pre;color:#404040;'>    state seems to be the best possible under the circumstances.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    TESTED:
</span><span style='display:block; white-space:pre;color:#404040;'>    Behavior across compiler versions is as noted above.
</span><span style='display:block; white-space:pre;color:#404040;'>    Tests pass on all platforms.
</span>---
 test/test_stpncpy_chk.c | 10 ++++++++++
 test/test_strncpy_chk.c | 12 ++++++++++++
 2 files changed, 22 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_stpncpy_chk.c b/test/test_stpncpy_chk.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 6feb8e1..cb70366 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/test/test_stpncpy_chk.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/test/test_stpncpy_chk.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -99,6 +99,16 @@ print_after(void)
</span> #include <unistd.h>
 #include <sys/wait.h>
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+/* Try to disable warnings for things we're intentionally provoking */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if defined(__clang__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma clang diagnostic ignored "-Wunknown-pragmas"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma clang diagnostic ignored "-Wbuiltin-memcpy-chk-size"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#elif defined(__GNUC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma GCC diagnostic ignored "-Wpragmas"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma GCC diagnostic ignored "-Wstringop-overflow"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma GCC diagnostic ignored "-Warray-bounds"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> const char *test_str = "The Quick Brown Fox";
 
 #define BUF_LEN 128  /* Generously longer than test_str */
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/test/test_strncpy_chk.c b/test/test_strncpy_chk.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 901ef66..462db5f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/test/test_strncpy_chk.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/test/test_strncpy_chk.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -103,6 +103,18 @@ print_after(void)
</span> #include <unistd.h>
 #include <sys/wait.h>
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+/* Try to disable warnings for things we're intentionally provoking */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if defined(__clang__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma clang diagnostic ignored "-Wunknown-pragmas"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma clang diagnostic ignored "-Wbuiltin-memcpy-chk-size"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma clang diagnostic ignored "-Wunknown-warning-option"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma clang diagnostic ignored "-Wfortify-source"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#elif defined(__GNUC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma GCC diagnostic ignored "-Wpragmas"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma GCC diagnostic ignored "-Wstringop-overflow"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #pragma GCC diagnostic ignored "-Warray-bounds"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> const char *test_str = "The Quick Brown Fox";
 
 #define BUF_LEN 128  /* Generously longer than test_str */
</pre><pre style='margin:0'>

</pre>