On Monday, 9 May 2016 at 20:14:36 UTC, Walter Bright wrote:
On 5/9/2016 11:37 AM, Xinok wrote:
All of these scenarios are capable of producing "incorrect"
results, are a
source of discrete bugs (often corner cases that we failed to
consider and
test), and can be hard to detect. It's about time we stopped
being stubborn and
flagged these things as warnings. Even if they require a
special compiler flag
and are disabled by default, that's better than nothing.
I've used a B+D language that does as you suggest (Wirth
Pascal). It was highly unpleasant to use, as the code became
littered with casts. Casts introduce their own set of bugs.
Maybe it's a bad idea to enable these warnings by default but
what's wrong with providing a compiler flag to perform these
checks anyways? For example, GCC has a compiler flag to yield
warnings for signed+unsigned comparisons but it's not even
enabled with the -Wall flag, only by specifying -Wextra or
-Wsign-compare.