------- Additional Comments From steven at gcc dot gnu dot org 2005-08-17 21:47 ------- FYI, this is the CFG for the test case of comment #13 at the point where the warning is issued: fpos seekoff(int, int) (b, c) { int finally_tmp.0; struct g __buf; struct fpos D.2120; struct fpos D.2119; struct fpos D.2123; # BLOCK 0 # PRED: ENTRY (fallthru) __comp_ctor (&__buf); if (b == -1) goto <L2>; else goto <L0>; # SUCC: 3 (true) 1 (false) # BLOCK 1 # PRED: 0 (false) <L0>:; if (c < 0) goto <L2>; else goto <L1>; # SUCC: 3 (true) 2 (false) # BLOCK 2 # PRED: 1 (false) <L1>:; __comp_ctor (&D.2119, -1); D.2123 = D.2119; finally_tmp.0 = 0; goto <bb 4> (<L4>); # SUCC: 4 (fallthru) # BLOCK 3 # PRED: 0 (true) 1 (true) <L2>:; __comp_ctor (&D.2120, -1); D.2123 = D.2120; finally_tmp.0 = 0; # SUCC: 4 (fallthru) # BLOCK 4 # PRED: 2 (fallthru) 3 (fallthru) <L4>:; __comp_dtor (&__buf); switch (finally_tmp.0) { case 1: goto <L5>; default : goto <L6>; } # SUCC: 5 6 # BLOCK 5 # PRED: 4 <L5>:; return; # SUCC: EXIT # BLOCK 6 # PRED: 4 <L6>:; return D.2123; # SUCC: EXIT }
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20624