[rtems commit] stackchk: Fixed 32bit pointers

Joel Sherrill joel at rtems.org
Wed May 5 15:15:27 UTC 2021


Module:    rtems
Branch:    master
Commit:    cd5fd85730e5c6cacf169cd8a005e129c8ef1200
Changeset: http://git.rtems.org/rtems/commit/?id=cd5fd85730e5c6cacf169cd8a005e129c8ef1200

Author:    Stephen Clark <stephen.clark at oarcorp.com>
Date:      Thu Mar 18 12:01:27 2021 -0500

stackchk: Fixed 32bit pointers

Using 32bit types like uint32_t for pointers creates issues on 64 bit
architectures like AArch64. Replaced occurrences of these with uintptr_t,
which will work for both 32 and 64 bit architectures.

---

 cpukit/libmisc/stackchk/check.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/cpukit/libmisc/stackchk/check.c b/cpukit/libmisc/stackchk/check.c
index ab08155..a2b6334 100644
--- a/cpukit/libmisc/stackchk/check.c
+++ b/cpukit/libmisc/stackchk/check.c
@@ -447,12 +447,13 @@ static bool Stack_check_Dump_threads_usage(
 {
   char                 name[ 22 ];
   const rtems_printer *printer;
+  uintptr_t sp = _CPU_Context_Get_SP( &the_thread->Registers );
 
   printer = arg;
   _Thread_Get_name( the_thread, name, sizeof( name ) );
   Stack_check_Dump_stack_usage(
     &the_thread->Start.Initial_stack,
-    (void *) _CPU_Context_Get_SP( &the_thread->Registers ),
+    (void *) sp,
     name,
     the_thread->Object.id,
     printer



More information about the vc mailing list