diff options
author | Daniel Hellstrom <daniel@gaisler.com> | 2018-06-28 14:39:37 +0200 |
---|---|---|
committer | Daniel Hellstrom <daniel@gaisler.com> | 2018-08-24 15:51:39 +0200 |
commit | 0d51b6d87e3ad85b669fa11445fe71dbd6936e3d (patch) | |
tree | 6ba3c578fdbcebfae63f4e1e41d931e4c29efadd /cpukit/libmisc | |
parent | leon,grspw_pkt: remove incorrect comment on SMP not being tested (diff) | |
download | rtems-0d51b6d87e3ad85b669fa11445fe71dbd6936e3d.tar.bz2 |
capture: prevent unaligned access when reading time
LLVM warns about this:
cpukit/libmisc/capture/capture.c:405:30: warning:
taking address of packed member 'time' of class or structure
'rtems_capture_record' may result in an unaligned pointer value
[-Waddress-of-packed-member]
rtems_capture_get_time (&in.time);
And on sparc it generates an unaligned trap which makes smpcapture01
and smpcapture02 test to fail on sparc.
Diffstat (limited to 'cpukit/libmisc')
-rw-r--r-- | cpukit/libmisc/capture/capture.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/cpukit/libmisc/capture/capture.c b/cpukit/libmisc/capture/capture.c index 19a90c5954..4d40b8f630 100644 --- a/cpukit/libmisc/capture/capture.c +++ b/cpukit/libmisc/capture/capture.c @@ -387,6 +387,7 @@ rtems_capture_record_open (rtems_tcb* tcb, if (ptr != NULL) { rtems_capture_record in; + rtems_capture_time time; ++cpu->count; @@ -402,7 +403,8 @@ rtems_capture_record_open (rtems_tcb* tcb, rtems_capture_task_real_priority (tcb) | (rtems_capture_task_curr_priority (tcb) << 8)); - rtems_capture_get_time (&in.time); + rtems_capture_get_time (&time); + in.time = time; /* need this since in is a packed struct */ ptr = rtems_capture_record_append(ptr, &in, sizeof(in)); } |