GNU bug report logs -
#8290
possibly-uninitialized variables in find_automatic_composition
Previous Next
Reported by: Paul Eggert <eggert <at> cs.ucla.edu>
Date: Sat, 19 Mar 2011 02:14:01 UTC
Severity: minor
Merged with 8697
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Wed, 23 Mar 2011 15:06:46 -0700
with message-id <4D8A6EF6.6010006 <at> cs.ucla.edu>
and subject line fix merged to trunk
has caused the GNU bug report #8290,
regarding possibly-uninitialized variables in find_automatic_composition
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
8290: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8290
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Severity: minor
In the Emacs trunk, src/composite.c's find_automatic_composition has
two local variables 'check' and 'prev' that gcc -Wuninitialized warns
as being possibly being uninitialized when used. This function has
multiple gotos and dependencies on data structures that I don't
understand, so it's not clear to me that GCC is wrong here. So I'm
filing a bug report in the hopes that someone more expert can look at it.
I plan to work around the diagnostic by committing the following
change, which adds a FIXME comment asking for initial value if needed,
and for the comment to be removed if the code is OK as-is. IF_LINT
is used to tell GCC not to issue a warning here, for now.
I'm CC:ing this to Kenichi Handa, who committed the code in question,
to give him a heads-up about the problem.
* composite.c (find_automatic_composition): Mark vars as initialized, with a FIXME.
=== modified file 'src/composite.c'
--- src/composite.c 2011-03-19 00:58:10 +0000
+++ src/composite.c 2011-03-19 01:02:12 +0000
@@ -1489,7 +1489,13 @@
EMACS_INT head, tail, stop;
/* Limit to check a composition after POS. */
EMACS_INT fore_check_limit;
- struct position_record orig, cur, check, prev;
+ struct position_record orig, cur;
+
+ /* FIXME: It's not obvious whether these two variables need initialization.
+ If they do, please supply initial values.
+ If not, please remove this comment. */
+ struct position_record check IF_LINT (= {0}), prev IF_LINT (= {0});
+
Lisp_Object check_val, val, elt;
int c;
Lisp_Object window;
[Message part 3 (message/rfc822, inline)]
I committed a fix to the trunk for this,
as part of a recent merge (bzr 103721).
This bug report was last modified 14 years and 10 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.