This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: Committed, MAINTAINERS, sim/cris: Fix make -j race and mark cris-elf as non-broken, cp-name-parser.y
On Sat, May 28, 2005 at 10:22:27AM -0400, Daniel Jacobowitz wrote:
> On Sat, May 28, 2005 at 10:58:31AM +0200, Hans-Peter Nilsson wrote:
> > cc1: warnings being treated as errors
> > cp-name-parser.y: In function 'parse_escape':
> > cp-name-parser.y:1443: warning: 'target_char' may be used
> > uninitialized in this function
> >
> > in the gdb directory. I looked at that problem and concluded
> > the patch to cp-name-parser.y as an obvious fix. The warning
> > came from gcc-4.0.0-2 and looks correct; the c_parse_backslash
> > is a static function and apparently the code *has* that problem;
> > it's not a false positive. It takes two looks. Then I ran into:
>
> Maybe it takes three? Your patch is incorrect, since it is covering up
> a real problem. It ought to be "return c".
Like so. Checked with GCC 4.1.0 20050508 and committed.
--
Daniel Jacobowitz
CodeSourcery, LLC
2005-05-28 Daniel Jacobowitz <dan@codesourcery.com>
* cp-name-parser.y (parse_escape): Revert previous change. Return
the input character by default.
Index: cp-name-parser.y
===================================================================
RCS file: /cvs/src/src/gdb/cp-name-parser.y,v
retrieving revision 1.2
diff -u -p -r1.2 cp-name-parser.y
--- cp-name-parser.y 28 May 2005 08:49:13 -0000 1.2
+++ cp-name-parser.y 28 May 2005 16:47:46 -0000
@@ -1440,7 +1440,7 @@ c_parse_backslash (int host_char, int *t
static int
parse_escape (const char **string_ptr)
{
- int target_char = 0;
+ int target_char;
int c = *(*string_ptr)++;
if (c_parse_backslash (c, &target_char))
return target_char;
@@ -1498,7 +1498,7 @@ parse_escape (const char **string_ptr)
return i;
}
default:
- return target_char;
+ return c;
}
}