From c4869b5f1db14b7cc71f2b3ced7251b443e37eab Mon Sep 17 00:00:00 2001
From: Tilghman Lesher <tilghman@meg.abyt.es>
Date: Sun, 9 Sep 2007 02:45:06 +0000
Subject: [PATCH] Merged revisions 82028 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r82028 | tilghman | 2007-09-08 21:35:18 -0500 (Sat, 08 Sep 2007) | 2 lines

Fix inline compiles on really old compilers (who uses gcc 2.7 anymore, really?) (closes issue #10675)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82029 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 include/asterisk/lock.h | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h
index 22c7ef1ca7..686f36685d 100644
--- a/include/asterisk/lock.h
+++ b/include/asterisk/lock.h
@@ -786,19 +786,27 @@ AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
 {
 	return OSAtomicAdd64(v, (int64_t *) p);
 #elif defined (__i386__) || defined(__x86_64__)
+#ifdef sun
 AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
 {
 	__asm __volatile (
-#ifdef sun
 	"       lock;  xaddl   %0, %1 ;        "
-#else
+	: "+r" (v),                     /* 0 (result) */   
+	  "=m" (*p)                     /* 1 */
+	: "m" (*p));                    /* 2 */
+	return (v);
+})
+#else /* ifndef sun */
+AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
+{
+	__asm __volatile (
 	"       lock   xaddl   %0, %1 ;        "
-#endif
 	: "+r" (v),                     /* 0 (result) */   
 	  "=m" (*p)                     /* 1 */
 	: "m" (*p));                    /* 2 */
 	return (v);
 })
+#endif
 #else   /* low performance version in utils.c */
 AST_INLINE_API(int ast_atomic_fetchadd_int(volatile int *p, int v),
 {
-- 
GitLab