<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/4b7e6a1ca685c1718cee683fbb36842afa5eb1fc">https://github.com/macports/macports-legacy-support/commit/4b7e6a1ca685c1718cee683fbb36842afa5eb1fc</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 4b7e6a1ca685c1718cee683fbb36842afa5eb1fc
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Tue May 27 20:03:36 2025 -0700

<span style='display:block; white-space:pre;color:#404040;'>    compiler.h: New local include for compiler-specific features.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Currently this just includes macros for branch hints.
</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;'>    Macros build successfully with all compilers.
</span>---
 src/compiler.h | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/compiler.h b/src/compiler.h
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..212f540
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/compiler.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,37 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Copyright (c) 2025 Frederick H. G. Wright II <fw@fwright.net>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * Permission to use, copy, modify, and distribute this software for any
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * purpose with or without fee is hereby granted, provided that the above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * copyright notice and this permission notice appear in all copies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifndef __MACPORTS_COMPILER_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define __MACPORTS_COMPILER_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/* Macros for compiler-specific features */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/* Branch prediction hints */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifdef __has_builtin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #if __has_builtin(__builtin_expect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #define MPLS_EXPECT(x, v) __builtin_expect((x), (v))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #define MPLS_FASTPATH(x) ((__typeof__(x))MPLS_EXPECT((long)(x), ~0l))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    #define MPLS_SLOWPATH(x) ((__typeof__(x))MPLS_EXPECT((long)(x), 0l))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif  /* __has_builtin */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#ifndef MPLS_EXPECT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #define MPLS_EXPECT(x, v) (x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #define MPLS_FASTPATH(x) (x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  #define MPLS_SLOWPATH(x) (x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#endif /* __MACPORTS_COMPILER_H */
</span></pre><pre style='margin:0'>

</pre>