diff options
author | das <das> | 2009-06-30 00:56:08 (GMT) |
---|---|---|
committer | das <das> | 2009-06-30 00:56:08 (GMT) |
commit | 93288b1b6b66e279ff92700ad78627879c3e3531 (patch) | |
tree | 1bdf0fea8a0fb90c3543dc08e19ae48f32da670a /generic | |
parent | ccc761ddde222870a23a9ab6a3b3ee16e6bb2924 (diff) | |
download | tcl-93288b1b6b66e279ff92700ad78627879c3e3531.zip tcl-93288b1b6b66e279ff92700ad78627879c3e3531.tar.gz tcl-93288b1b6b66e279ff92700ad78627879c3e3531.tar.bz2 |
* generic/tclInt.h: add assert macros for clang static
* generic/tclPanic.c: analyzer and redefine Tcl_Panic to
* generic/tclStubInit.c: assert after panic in clang PURIFY
builds.
* generic/tclCmdIL.c: add clang assert for false positive
from static analyzer.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclCmdIL.c | 3 | ||||
-rw-r--r-- | generic/tclInt.h | 16 | ||||
-rw-r--r-- | generic/tclPanic.c | 3 | ||||
-rw-r--r-- | generic/tclStubInit.c | 3 |
4 files changed, 21 insertions, 4 deletions
diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c index be62444..e86f686 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -16,7 +16,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCmdIL.c,v 1.165 2009/02/03 23:34:32 nijtmans Exp $ + * RCS: @(#) $Id: tclCmdIL.c,v 1.166 2009/06/30 00:56:08 das Exp $ */ #include "tclInt.h" @@ -2508,6 +2508,7 @@ Tcl_LrepeatObjCmd( * number of times. */ + CLANG_ASSERT(dataArray); if (objc == 1) { register Tcl_Obj *tmpPtr = objv[0]; diff --git a/generic/tclInt.h b/generic/tclInt.h index d75eaa6..80aec34 100644 --- a/generic/tclInt.h +++ b/generic/tclInt.h @@ -15,7 +15,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclInt.h,v 1.424 2009/06/18 09:41:27 dkf Exp $ + * RCS: @(#) $Id: tclInt.h,v 1.425 2009/06/30 00:56:08 das Exp $ */ #ifndef _TCLINT @@ -4186,6 +4186,20 @@ MODULE_SCOPE void TclBNInitBignumFromWideUInt(mp_int *bignum, #endif /* TCL_MEM_DEBUG */ /* + * Macros for clang static analyzer + */ + +#if defined(PURIFY) && defined(__clang__) && !defined(CLANG_ASSERT) +#include <assert.h> +#define CLANG_ASSERT(x) assert(x) +#define Tcl_PanicEx Tcl_Panic +#undef Tcl_Panic +#define Tcl_Panic(f, ...) Tcl_PanicEx(f,##__VA_ARGS__); CLANG_ASSERT(0) +#elif !defined(CLANG_ASSERT) +#define CLANG_ASSERT(x) +#endif + +/* *---------------------------------------------------------------- * Parameters, structs and macros for the non-recursive engine (NRE) *---------------------------------------------------------------- diff --git a/generic/tclPanic.c b/generic/tclPanic.c index 0a63076..e74df68 100644 --- a/generic/tclPanic.c +++ b/generic/tclPanic.c @@ -12,10 +12,11 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclPanic.c,v 1.12 2008/10/26 18:34:04 dkf Exp $ + * RCS: @(#) $Id: tclPanic.c,v 1.13 2009/06/30 00:56:08 das Exp $ */ #include "tclInt.h" +#undef Tcl_Panic /* * The panicProc variable contains a pointer to an application specific panic diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index a5a627d..9241677 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -8,7 +8,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclStubInit.c,v 1.181 2009/06/18 09:42:40 dkf Exp $ + * RCS: @(#) $Id: tclStubInit.c,v 1.182 2009/06/30 00:56:08 das Exp $ */ #include "tclInt.h" @@ -33,6 +33,7 @@ #undef Tcl_ValidateAllMemory #undef Tcl_FindHashEntry #undef Tcl_CreateHashEntry +#undef Tcl_Panic /* * WARNING: The contents of this file is automatically generated by the |