diff --git a/mps/code/check.h b/mps/code/check.h index 9d57678d9ea..eb7219bbe05 100644 --- a/mps/code/check.h +++ b/mps/code/check.h @@ -1,7 +1,7 @@ /* check.h: ASSERTION INTERFACE * * $Id$ - * Copyright (c) 2001-2016 Ravenbrook Limited. See end of file for license. + * Copyright (c) 2001-2017 Ravenbrook Limited. See end of file for license. * Portions copyright (C) 2002 Global Graphics Software. * * .aver: This header defines a family of AVER and NOTREACHED macros. @@ -56,9 +56,10 @@ mps_lib_assert_fail(MPS_FILE, __LINE__, (condstring)); \ END -#define ASSERTP(cond, condstring, dflt) \ - (LIKELY(cond) ? (dflt) : \ - mps_lib_assert_fail_expr(MPS_FILE, __LINE__, condstring, dflt)) +#define ASSERTP(cond, condstring, default_) \ + ((void)(LIKELY(cond) \ + || (mps_lib_assert_fail(MPS_FILE, __LINE__, (condstring)), FALSE)), \ + (default_)) #define ASSERT_ISTYPE(type, val) (type ## Check(val)) #define ASSERT_TYPECHECK(type, val) \ @@ -373,7 +374,7 @@ extern unsigned CheckLevel; /* C. COPYRIGHT AND LICENSE * - * Copyright (C) 2001-2016 Ravenbrook Limited . + * Copyright (C) 2001-2017 Ravenbrook Limited . * All rights reserved. This is an open source license. Contact * Ravenbrook for commercial licensing options. * diff --git a/mps/code/mpslib.h b/mps/code/mpslib.h index 60db38b2123..e8e2d8dfd95 100644 --- a/mps/code/mpslib.h +++ b/mps/code/mpslib.h @@ -1,7 +1,7 @@ /* mpslib.h: RAVENBROOK MEMORY POOL SYSTEM LIBRARY INTERFACE * * $Id$ - * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. + * Copyright (c) 2001-2017 Ravenbrook Limited. See end of file for license. * * .readership: MPS client application developers, MPS developers. * .sources: @@ -44,7 +44,6 @@ extern int mps_lib_fputs(const char *, mps_lib_FILE *); environment it can return and the MPS will attempt to continue, though this may cause failure of the process soon after. */ extern void mps_lib_assert_fail(const char *, unsigned, const char *); -extern void *mps_lib_assert_fail_expr(const char *, unsigned, const char *, void *); /* The default ANSI plinth in mpsliban.c allows the assertion handler to be replaced by passing a replacement to `mps_lib_assert_fail_install`, @@ -79,7 +78,7 @@ extern unsigned long mps_lib_telemetry_control(void); /* C. COPYRIGHT AND LICENSE * - * Copyright (C) 2001-2002 Ravenbrook Limited . + * Copyright (C) 2001-2017 Ravenbrook Limited . * All rights reserved. This is an open source license. Contact * Ravenbrook for commercial licensing options. * diff --git a/mps/code/mpsliban.c b/mps/code/mpsliban.c index e18d87ea5e6..4a9c28d7ab3 100644 --- a/mps/code/mpsliban.c +++ b/mps/code/mpsliban.c @@ -1,7 +1,7 @@ /* mpsliban.c: RAVENBROOK MEMORY POOL SYSTEM LIBRARY INTERFACE (ANSI) * * $Id$ - * Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license. + * Copyright (c) 2001-2017 Ravenbrook Limited. See end of file for license. * Portions copyright (c) 2002 Global Graphics Software. * * .purpose: The purpose of this code is @@ -87,15 +87,6 @@ void mps_lib_assert_fail(const char *file, mps_lib_assert_handler(file, line, condition); } -extern void *mps_lib_assert_fail_expr(const char *file, - unsigned line, - const char *condition, - void *p) -{ - mps_lib_assert_fail(file, line, condition); - return p; -} - mps_lib_assert_fail_t mps_lib_assert_fail_install(mps_lib_assert_fail_t handler) { mps_lib_assert_fail_t old_handler = mps_lib_assert_handler; @@ -215,7 +206,7 @@ unsigned long mps_lib_telemetry_control(void) /* C. COPYRIGHT AND LICENSE * - * Copyright (C) 2001-2014 Ravenbrook Limited . + * Copyright (C) 2001-2017 Ravenbrook Limited . * All rights reserved. This is an open source license. Contact * Ravenbrook for commercial licensing options. *