On Wednesday 25 February 2015 13:35:17 Ulf Hermann wrote: > We should thus do Q_CHECK_PTR on every memory allocation in Qt and we should > fix Q_CHECK_PTR so that it works under all circumstances.
I disagree on both accounts. > > Is QT_NO_DEBUG really disabling the check for valid memory allocation? > > You need QT_NO_EXCEPTIONS and QT_NO_DEBUG for Q_CHECK_PTR to be a qt_noop(). > I can't say I like this situation, but the point seems to be that you > cannot throw bad_alloc if you've compiled without exceptions. I would argue > for just crashing in this case, by accessing a known-bad address. That's > quite a behavior change, of course. That's undefined behaviour. If you write code: if (!p) *(char*)p = 42; // crash The compiler will simply eliminate your code because it *knows* that you never dereference null pointers. The only thing you can reliably do is raise(SIGSEGV). -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development