Summary: This MR and !1930 (merged) are motivated by a recent issue (#573 (closed)) which exposed some bugs in LALSuite when the debugging symbols
NDEBUG were not defined in a consistent way. The goal is to largely eliminate use of these symbols in LALSuite to avoid this happening in future.
NDEBUG are often used to disable error checking/error printing code. Given that LALSuite is typically not compiled with
NDEBUG this code has already been in production usage, and clearly does not have a significant performance penalty. In any case, any performance improvement would be small compact to the human cost of debugging weird/silent failures because error checks were suppressed. So I have simply removed the
#ifndef NDEBUG checks, so the error checking/error printing code is always compiled.
In a few places (
lalpulsar/lib/SinCosLUT.i) some code removed by
NDEBUG may have a performance penalty. In these cases I have either used a different local macro to disable to code (to give better control) or used another solution to mitigate any (unlikely) performance degradation.
This MR has no API changes; it only modifies
.c or other compiled C files, not C headers.
This change does not modify any class/function/struct/type definitions in a public C header file or any Python class/function definitions
This change adds new classes/functions/structs/types to a public C header file or Python module
This change modifies an existing class/function/struct/type definition in a public C header file or Python module
This change removes an existing class/function/struct/type from a public C header file or Python module