1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or https://opensource.org/licenses/CDDL-1.0. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 /* 22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26 #include <assert.h> 27 28 static boolean_t libspl_assert_ok = B_FALSE; 29 30 void 31 libspl_set_assert_ok(boolean_t val) 32 { 33 libspl_assert_ok = val; 34 } 35 36 /* printf version of libspl_assert */ 37 void 38 libspl_assertf(const char *file, const char *func, int line, 39 const char *format, ...) 40 { 41 va_list args; 42 43 va_start(args, format); 44 vfprintf(stderr, format, args); 45 fprintf(stderr, "\n"); 46 fprintf(stderr, "ASSERT at %s:%d:%s()", file, line, func); 47 va_end(args); 48 49 #if !__has_feature(attribute_analyzer_noreturn) && !defined(__COVERITY__) 50 if (libspl_assert_ok) { 51 return; 52 } 53 #endif 54 abort(); 55 } 56