This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch hjl/pointer updated. glibc-2.16-ports-merge-773-gf10294d


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/pointer has been updated
       via  f10294d3c55a2d8c15e51cb2dbc2a41f908f3fa8 (commit)
      from  6a77943153843e1dc8ab8642085344f199ed40e0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=f10294d3c55a2d8c15e51cb2dbc2a41f908f3fa8

commit f10294d3c55a2d8c15e51cb2dbc2a41f908f3fa8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Nov 26 10:36:24 2012 -0800

    Add and use cast_to_integer

diff --git a/ChangeLog.hjl b/ChangeLog.hjl
index 430ac65..dfc0297 100644
--- a/ChangeLog.hjl
+++ b/ChangeLog.hjl
@@ -3,10 +3,11 @@
 	* elf/dl-load.c (_dl_map_object_from_fd): Cast to uintptr_t
 	before casting to void *.
 	* include/sys/cdefs.h (__pointer_type): New macro.
-	(__real_type_sub): Likewise.
-	(__real_type): Likewise.
+	(__integer_if_pointer_type_sub): Likewise.
+	(__integer_if_pointer_type): Likewise.
+	(cast_to_integer): Likewise.
 	* sysdeps/x86_64/bits/atomic.h
-	(__arch_c_compare_and_exchange_val_64_acq): Cast to __real_type
+	(__arch_c_compare_and_exchange_val_64_acq): Use cast_to_integer
 	before casting to atomic64_t.
 	(atomic_exchange_acq): Likewise.
 	(__arch_exchange_and_add_body): Likewise.
@@ -20,7 +21,7 @@ nptl/
 
 	* unwind.c (__pthread_unwind): Pass address of unwind_cleanup
 	to THREAD_SETMEM.
-	* sysdeps/i386/tls.h (THREAD_SETMEM): Cast to __real_type before
+	* sysdeps/i386/tls.h (THREAD_SETMEM): Use cast_to_integer before
 	casting to uint64_t.
 	(THREAD_SETMEM_NC): Likewise.
 	* sysdeps/x86_64/tls.h (THREAD_SETMEM): Likewise.
diff --git a/include/sys/cdefs.h b/include/sys/cdefs.h
index 6685fbf..5d96464 100644
--- a/include/sys/cdefs.h
+++ b/include/sys/cdefs.h
@@ -31,3 +31,6 @@ rtld_hidden_proto (__chk_fail)
 #define __integer_if_pointer_type(expr) \
   __integer_if_pointer_type_sub(__typeof__ ((__typeof__ (expr)) 0), \
 				__pointer_type (__typeof__ (expr)))
+
+/* Cast an integer or a pointer VAL to integer with proper type.  */
+#define cast_to_integer(val) ((__integer_if_pointer_type (val)) (val))
diff --git a/nptl/sysdeps/i386/tls.h b/nptl/sysdeps/i386/tls.h
index 98bafdb..96a2708 100644
--- a/nptl/sysdeps/i386/tls.h
+++ b/nptl/sysdeps/i386/tls.h
@@ -343,7 +343,7 @@ union user_desc_init
 									      \
 	 asm volatile ("movl %%eax,%%gs:%P1\n\t"			      \
 		       "movl %%edx,%%gs:%P2" :				      \
-		       : "A" ((uint64_t) (__integer_if_pointer_type (value)) (value)),\
+		       : "A" ((uint64_t) cast_to_integer (value)),	      \
 			 "i" (offsetof (struct pthread, member)),	      \
 			 "i" (offsetof (struct pthread, member) + 4));	      \
        }})
@@ -370,7 +370,7 @@ union user_desc_init
 									      \
 	 asm volatile ("movl %%eax,%%gs:%P1(,%2,8)\n\t"			      \
 		       "movl %%edx,%%gs:4+%P1(,%2,8)" :			      \
-		       : "A" ((uint64_t) (__integer_if_pointer_type (value)) (value)),\
+		       : "A" ((uint64_t) cast_to_integer (value)),	      \
 			 "i" (offsetof (struct pthread, member)),	      \
 			 "r" (idx));					      \
        }})
diff --git a/nptl/sysdeps/x86_64/tls.h b/nptl/sysdeps/x86_64/tls.h
index 23675b3..ee0b6c0 100644
--- a/nptl/sysdeps/x86_64/tls.h
+++ b/nptl/sysdeps/x86_64/tls.h
@@ -263,7 +263,7 @@ typedef struct
 	   abort ();							      \
 									      \
 	 asm volatile ("movq %q0,%%fs:%P1" :				      \
-		       : IMM_MODE ((uint64_t) (__integer_if_pointer_type (value)) (value)),\
+		       : IMM_MODE ((uint64_t) cast_to_integer (value)),	      \
 			 "i" (offsetof (struct pthread, member)));	      \
        }})
 
@@ -288,7 +288,7 @@ typedef struct
 	   abort ();							      \
 									      \
 	 asm volatile ("movq %q0,%%fs:%P1(,%q2,8)" :			      \
-		       : IMM_MODE ((uint64_t) (__integer_if_pointer_type (value)) (value)),\
+		       : IMM_MODE ((uint64_t) cast_to_integer (value)),	      \
 			 "i" (offsetof (struct pthread, member[0])),	      \
 			 "r" (idx));					      \
        }})
diff --git a/sysdeps/x86_64/bits/atomic.h b/sysdeps/x86_64/bits/atomic.h
index 4c7efd8..81456ed 100644
--- a/sysdeps/x86_64/bits/atomic.h
+++ b/sysdeps/x86_64/bits/atomic.h
@@ -101,9 +101,9 @@ typedef uintmax_t uatomic_max_t;
 		       "lock\n"						      \
 		       "0:\tcmpxchgq %q2, %1"				      \
 		       : "=a" (ret), "=m" (*mem)			      \
-		       : "q" ((atomic64_t) (__integer_if_pointer_type (newval)) (newval)),\
+		       : "q" ((atomic64_t) cast_to_integer (newval)),	      \
 			 "m" (*mem),					      \
-			 "0" ((atomic64_t) (__integer_if_pointer_type (oldval)) (oldval)),\
+			 "0" ((atomic64_t) cast_to_integer (oldval)),	      \
 			 "i" (offsetof (tcbhead_t, multiple_threads)));	      \
      ret; })
 
@@ -126,7 +126,7 @@ typedef uintmax_t uatomic_max_t;
      else								      \
        __asm __volatile ("xchgq %q0, %1"				      \
 			 : "=r" (result), "=m" (*mem)			      \
-			 : "0" ((atomic64_t) (__integer_if_pointer_type (newvalue)) (newvalue)),\
+			 : "0" ((atomic64_t) cast_to_integer (newvalue)),     \
 			   "m" (*mem));					      \
      result; })
 
@@ -151,7 +151,7 @@ typedef uintmax_t uatomic_max_t;
      else								      \
        __asm __volatile (lock "xaddq %q0, %1"				      \
 			 : "=r" (result), "=m" (*mem)			      \
-			 : "0" ((atomic64_t) (__integer_if_pointer_type (value)) (value)),\
+			 : "0" ((atomic64_t) cast_to_integer (value)),	      \
 			   "m" (*mem),					      \
 			   "i" (offsetof (tcbhead_t, multiple_threads)));     \
      result; })
@@ -190,7 +190,7 @@ typedef uintmax_t uatomic_max_t;
     else								      \
       __asm __volatile (lock "addq %q1, %0"				      \
 			: "=m" (*mem)					      \
-			: "ir" ((atomic64_t) (__integer_if_pointer_type (value)) (value)),\
+			: "ir" ((atomic64_t) cast_to_integer (value)),	      \
 			  "m" (*mem),					      \
 			  "i" (offsetof (tcbhead_t, multiple_threads)));      \
   } while (0)
@@ -222,7 +222,7 @@ typedef uintmax_t uatomic_max_t;
      else								      \
        __asm __volatile (LOCK_PREFIX "addq %q2, %0; sets %1"		      \
 			 : "=m" (*mem), "=qm" (__result)		      \
-			 : "ir" ((atomic64_t) (__integer_if_pointer_type (value)) (value)),\
+			 : "ir" ((atomic64_t) cast_to_integer (value)),	      \
 			   "m" (*mem));					      \
      __result; })
 
@@ -244,7 +244,7 @@ typedef uintmax_t uatomic_max_t;
      else								      \
        __asm __volatile (LOCK_PREFIX "addq %q2, %0; setz %1"		      \
 			 : "=m" (*mem), "=qm" (__result)		      \
-			 : "ir" ((atomic64_t) (__integer_if_pointer_type (value)) (value)),\
+			 : "ir" ((atomic64_t) cast_to_integer (value)),	      \
 			   "m" (*mem));					      \
      __result; })
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog.hjl                |    9 +++++----
 include/sys/cdefs.h          |    3 +++
 nptl/sysdeps/i386/tls.h      |    4 ++--
 nptl/sysdeps/x86_64/tls.h    |    4 ++--
 sysdeps/x86_64/bits/atomic.h |   14 +++++++-------
 5 files changed, 19 insertions(+), 15 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]