On 7/9/17 7:10 AM, Walter Bright wrote:
On 7/7/2017 7:26 AM, Steven Schveighoffer wrote:
And since when did we care about null pointers causing segfaults?

Remember Tony Hoare's "The Billion Dollar Mistake"? That added a lot of fuel to the fire that a null pointer seg fault is supposed to be avoided at all costs, leading to wanting a softer, friendlier assert message instead.

I strongly disagree with Hoare - the billion dollar C mistake is having arrays relentlessly decay to pointers, leading to endless buffer overflow bugs. Seg faults aren't malware vectors.

But this isn't that. This is asserting a certain type of pointer (the this pointer), which is almost NEVER null, isn't null. It's so ineffective, I've never seen it trigger in 10 years. It's basically the worst possible place to deviate from the rule of "we don't do null pointer exceptions".

Can anyone vouch for this feature?

I'm sure if you're willing to spend a while searching this n.g. database, you'll find a lot.

I've seen a lot of people argue on the n.g. that null pointer checks should be added for every pointer dereference. I've NEVER seen anyone argue that upon every member function call, the compiler should verify `this` isn't null. Of course, why would they? it's already there :P

I'm seeing a large swath of well-known people arguing in this thread that it shouldn't work this way, and 0 people defending it.

-Steve

Reply via email to