On Wed, 23 Nov 2016, Michael Povolotskyi wrote:

> The fact that it is not theoretically possible suggests that I need to check 
> if I do something very nasty with memory.

No, no; there's nothing memory-related here (I mean, there might be,
but that would be a separate problem).  This is a pure question of
compiler arguments.

If every object you built with was compiled with -DNDEBUG, as we do in
libMesh opt mode, then those assertions should be defined to be
nothing.  The compiler, post-preprocessor, should not even know
that assertions were once there.

Oh, but wait a minute.  You're seeing an assertion in a header file,
aren't you?  So you might be building your app file without the
libMesh opt flags, but then linking it to a libMesh opt binary.  That
should be supported (although it's a problem with other methods: our
dbg mode turns on some ABI-incompatible features to help debugging)
and that would cause header-file assertions to throw if they were
triggered from within your code.

> I'll keep searching.

Try using the opt flags in your application too?  I don't *think*
there should be any ABI incompatibilities at issue (unless you're
using dbg flags in your application!), but it's worth checking out the
possibility.
---
Roy

------------------------------------------------------------------------------
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to