https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108612
--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> --- I think the warning is correct: 196 PROCEDURE dorbytes (g: GenDevIF; d: DeviceTablePtr; 197 to: ADDRESS; 198 max: CARDINAL; 199 VAR actual: CARDINAL) : BOOLEAN ; 200 VAR 201 fd: INTEGER ; 202 c : ClientInfo ; 203 p : PtrToLoc ; 204 i : INTEGER ; 205 BEGIN 206 c := GetData(d, mid) ; 207 WITH d^ DO 208 IF max>0 209 THEN <--- HERE we miss a return value for ELSE branch 210 p := to ; 211 IF getPushBackChar(c, p^) 212 THEN 213 actual := 1 ; 214 RETURN( TRUE ) 215 END ; 216 fd := getClientSocketFd(c) ; 217 i := read(fd, p, max) ; 218 IF i>=0 219 THEN 220 actual := i ; 221 RETURN( TRUE ) 222 ELSE 223 errNum := geterrno() ; 224 actual := 0 ; 225 RETURN( FALSE ) 226 END 227 END 228 END 229 END dorbytes ;