Questionable code in gcov-io.c
Nathan Sidwell
nathan@acm.org
Wed Oct 12 12:15:00 GMT 2016
On 10/12/16 08:10, Marek Polacek wrote:
> While implementing a warning I noticed this in gcov-io.c:
>
> 187 else if (mode == 0)
> 188 {
> 189 struct stat st;
> 190
> 191 if (fstat (fd, &st) < 0)
> 192 {
> 193 fclose (gcov_var.file);
> 194 gcov_var.file = 0;
> 195 return 0;
> 196 }
> 197 if (st.st_size != 0)
> 198 gcov_var.mode = 1;
> 199 else
> 200 gcov_var.mode = mode * 2 + 1;
> 201 }
> 202 else
> 203 gcov_var.mode = mode * 2 + 1;
>
> It seems that lines 198 and 200 do the same thing, at line 200 we know that
> mode == 0, so we just assign 1. Should we just remove the condition on line 197?
ITYM lines 197 -> 203. I.e. remove the entire if that;s inside the 'mode == 0'
branch and make line 203 unconditional.
nathan
More information about the Gcc-patches
mailing list