This is the mail archive of the libc-alpha@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]

Remove BOUNDED_N and BOUNDED_1


Continuing the removal of bitrotten bounded-pointers support, this
patch removes the macros BOUNDED_N, BOUNDED_1 and their uses.

Tested x86_64.

2013-01-31  Joseph Myers  <joseph@codesourcery.com>

	[BZ #13550]
	* sysdeps/generic/bp-checks.h (BOUNDED_N): Remove all definitions.
	(BOUNDED_1): Remove macro.
	* debug/backtrace.c: Don't include <bp-checks.h>.
	(ADVANCE_STACK_FRAME): Don't use BOUNDED_1.
	(__backtrace): Likewise.
	* sysdeps/powerpc/powerpc32/backtrace.c: Don't include
	<bp-checks.h>.
	(__backtrace): Don't use BOUNDED_1.
	* sysdeps/powerpc/powerpc64/backtrace.c: Don't include
	<bp-checks.h>.
	(__backtrace): Don't use BOUNDED_1.
	* sysdeps/sparc/backtrace.c: Don't include <bp-checks.h>.
	(__backtrace): Don't use BOUNDED_1.
	* sysdeps/unix/sysv/linux/shmat.c: Don't include <bp-checks.h>.
	(shmat): Don't use BOUNDED_N.

diff --git a/debug/backtrace.c b/debug/backtrace.c
index bd60c04..ca80797 100644
--- a/debug/backtrace.c
+++ b/debug/backtrace.c
@@ -21,7 +21,6 @@
 #include <signal.h>
 #include <frame.h>
 #include <sigcontextinfo.h>
-#include <bp-checks.h>
 #include <ldsodefs.h>
 
 /* This implementation assumes a stack layout that matches the defaults
@@ -50,7 +49,7 @@
 /* By default assume the `next' pointer in struct layout points to the
    next struct layout.  */
 #ifndef ADVANCE_STACK_FRAME
-# define ADVANCE_STACK_FRAME(next) BOUNDED_1 ((struct layout *) (next))
+# define ADVANCE_STACK_FRAME(next) ((struct layout *) (next))
 #endif
 
 /* By default, the frame pointer is just what we get from gcc.  */
@@ -72,7 +71,7 @@ __backtrace (array, size)
   top_stack = CURRENT_STACK_FRAME;
 
   /* We skip the call to this function, it makes no sense to record it.  */
-  current = BOUNDED_1 ((struct layout *) top_frame);
+  current = ((struct layout *) top_frame);
   while (cnt < size)
     {
       if ((void *) current INNER_THAN top_stack
diff --git a/sysdeps/generic/bp-checks.h b/sysdeps/generic/bp-checks.h
index 9bfa433..cfff915 100644
--- a/sysdeps/generic/bp-checks.h
+++ b/sysdeps/generic/bp-checks.h
@@ -66,13 +66,6 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
 /* Same as CHECK_STRING, but tolerate ARG == NULL.  */
 # define CHECK_STRING_NULL_OK(ARG) _CHECK_STRING ((ARG), __ptrvalue (ARG))
 
-/* Return a bounded pointer with value PTR that satisfies CHECK_N (PTR, N).  */
-# define BOUNDED_N(PTR, N) 				\
-  ({ __typeof (PTR) __bounded _p_;			\
-     __ptrvalue _p_ = __ptrlow _p_ = __ptrvalue (PTR);	\
-     __ptrhigh _p_ = __ptrvalue _p_ + (N);		\
-     _p_; })
-
 #else /* !__BOUNDED_POINTERS__ */
 
 /* Do nothing if not compiling with -fbounded-pointers.  */
@@ -85,10 +78,7 @@ extern void *__unbounded __ubp_memchr (const void *__unbounded, int, unsigned);
 # define CHECK_N(ARG, N) (ARG)
 # define CHECK_N_NULL_OK(ARG, N) (ARG)
 # define CHECK_STRING(ARG) (ARG)
-# define BOUNDED_N(PTR, N) (PTR)
 
 #endif /* !__BOUNDED_POINTERS__ */
 
-#define BOUNDED_1(PTR) BOUNDED_N (PTR, 1)
-
 #endif /* _bp_checks_h_ */
diff --git a/sysdeps/powerpc/powerpc32/backtrace.c b/sysdeps/powerpc/powerpc32/backtrace.c
index b1b4b8e..cd04450 100644
--- a/sysdeps/powerpc/powerpc32/backtrace.c
+++ b/sysdeps/powerpc/powerpc32/backtrace.c
@@ -18,7 +18,6 @@
 
 #include <execinfo.h>
 #include <stddef.h>
-#include <bp-checks.h>
 
 /* This is the stack layout we see with every stack frame.
    Note that every routine is required by the ABI to lay out the stack
@@ -47,11 +46,10 @@ __backtrace (void **array, int size)
 
   /* Get the address on top-of-stack.  */
   asm volatile ("lwz %0,0(1)" : "=r"(current));
-  current = BOUNDED_1 (current);
 
   for (				count = 0;
        current != NULL && 	count < size;
-       current = BOUNDED_1 (current->next), count++)
+       current = current->next, count++)
     array[count] = current->return_address;
 
   /* It's possible the second-last stack frame can't return
diff --git a/sysdeps/powerpc/powerpc64/backtrace.c b/sysdeps/powerpc/powerpc64/backtrace.c
index b52bb14..ca04a6f 100644
--- a/sysdeps/powerpc/powerpc64/backtrace.c
+++ b/sysdeps/powerpc/powerpc64/backtrace.c
@@ -18,7 +18,6 @@
 
 #include <execinfo.h>
 #include <stddef.h>
-#include <bp-checks.h>
 
 /* This is the stack layout we see with every stack frame.
    Note that every routine is required by the ABI to lay out the stack
@@ -50,11 +49,10 @@ __backtrace (void **array, int size)
 
   /* Get the address on top-of-stack.  */
   asm volatile ("ld %0,0(1)" : "=r"(current));
-  current = BOUNDED_1 (current);
 
   for (				count = 0;
        current != NULL && 	count < size;
-       current = BOUNDED_1 (current->next), count++)
+       current = current->next, count++)
     array[count] = current->return_address;
 
   /* It's possible the second-last stack frame can't return
diff --git a/sysdeps/sparc/backtrace.c b/sysdeps/sparc/backtrace.c
index 89f976b..a0ba1fd 100644
--- a/sysdeps/sparc/backtrace.c
+++ b/sysdeps/sparc/backtrace.c
@@ -19,7 +19,6 @@
 
 #include <execinfo.h>
 #include <stddef.h>
-#include <bp-checks.h>
 #include <sysdep.h>
 #include <sys/trap.h>
 #include <dlfcn.h>
@@ -129,7 +128,6 @@ __backtrace (void **array, int size)
       asm volatile ("mov %%fp, %0" : "=r"(fp));
       asm volatile ("mov %%i7, %0" : "=r"(i7));
       current = (struct layout *__unbounded) (fp + BACKTRACE_STACK_BIAS);
-      current = BOUNDED_1 (current);
 
       array[0] = (void *__unbounded) i7;
 
@@ -144,7 +142,6 @@ __backtrace (void **array, int size)
 	    break;
 	  current = (struct layout *__unbounded) (current->next
 						  + BACKTRACE_STACK_BIAS);
-	  current = BOUNDED_1 (current);
 	}
     }
   else
diff --git a/sysdeps/unix/sysv/linux/shmat.c b/sysdeps/unix/sysv/linux/shmat.c
index cb5aa50..91d9443 100644
--- a/sysdeps/unix/sysv/linux/shmat.c
+++ b/sysdeps/unix/sysv/linux/shmat.c
@@ -23,7 +23,6 @@
 #include <sysdep.h>
 #include <unistd.h>
 #include <sys/syscall.h>
-#include <bp-checks.h>
 
 /* Attach the shared memory segment associated with SHMID to the data
    segment of the calling process.  SHMADDR and SHMFLG determine how
@@ -58,5 +57,5 @@ shmat (shmid, shmaddr, shmflg)
       return (void *) -1l;
     }
 
-  return BOUNDED_N (raddr, length);
+  return raddr;
 }

-- 
Joseph S. Myers
joseph@codesourcery.com


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