[obv] Initialize variables in i386_linux_handle_segmentation_fault
Commit Message
Thanks Simon,
Haven't seen that.
Regards,
-Fred
-----Original Message-----
From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-owner@sourceware.org] On Behalf Of Simon Marchi
Sent: Thursday, February 25, 2016 5:08 PM
To: gdb-patches@sourceware.org
Cc: Simon Marchi
Subject: [PATCH obv] Initialize variables in i386_linux_handle_segmentation_fault
FYI, I just pushed this as obvious.
We see this error when building with gcc 4.3.
../../gdb/i386-linux-tdep.c: In function ‘i386_linux_handle_segmentation_fault’:
../../gdb/i386-linux-tdep.c:399: error: ‘access’ may be used uninitialized in this function
../../gdb/i386-linux-tdep.c:399: error: ‘upper_bound’ may be used uninitialized in this function
../../gdb/i386-linux-tdep.c:399: error: ‘lower_bound’ may be used uninitialized in this function
It's a false positive, since the variables will always get initialized in the TRY clause, and the CATCH returns.
gdb/ChangeLog:
* i386-linux-tdep.c (i386_linux_handle_segmentation_fault):
Initialize variables.
---
gdb/ChangeLog | 5 +++++
gdb/i386-linux-tdep.c | 3 ++-
2 files changed, 7 insertions(+), 1 deletion(-)
--
2.5.1
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928
@@ -1,3 +1,8 @@
+2016-02-25 Simon Marchi <simon.marchi@ericsson.com>
+
+ * i386-linux-tdep.c (i386_linux_handle_segmentation_fault):
+ Initialize variables.
+
2016-02-25 Antoine Tremblay <antoine.tremblay@ericsson.com>
* ax-general.c (ax_reg): Call gdbarch_remote_register_number.
@@ -396,7 +396,8 @@ void
i386_linux_handle_segmentation_fault (struct gdbarch *gdbarch,
struct ui_out *uiout)
{
- CORE_ADDR lower_bound, upper_bound, access;
+ /* -Wmaybe-uninitialized */
+ CORE_ADDR lower_bound = 0, upper_bound = 0, access = 0;
int is_upper;
long sig_code = 0;