>>>> "JJ" == Jakub Jelinek
<jakub(a)redhat.com> writes:
JJ> Ok, so the problem is ignoring important warnings, in this case:
JJ> imap/xapian_wrap.cpp: In function 'int
JJ> stem_version_set(Xapian::WritableDatabase*, int)':
JJ> imap/xapian_wrap.cpp:267:1: warning: no return statement in function
JJ> returning non-void [-Wreturn-type]
OK, so good, that's bad upstream code. I have given good odds on this
being an upstream issue all along, but because the backtraces go through
the unwinder it seemed obvious to look there first.
I do have to ask, though; is it considered good behavior to just
segfault like this? I understand that undefined behavior is just that,
but it seems like there has to be a better way to fail that at least
looks like it's not a GCC bug.
And, finally, if doing this in C++ code is so bad, why isn't this simply
an error?
JJ> So, effective summary, in C++ >>NEVER<< ignore -Wreturn-type
JJ> warning.
Thanks for the explanation; I've passed it on to upstream as
https://github.com/cyrusimap/cyrus-imapd/issues/2267
- J<