1 /* ===---------- eprintf.c - Implements __eprintf --------------------------=== 2 * 3 * The LLVM Compiler Infrastructure 4 * 5 * This file is dual licensed under the MIT and the University of Illinois Open 6 * Source Licenses. See LICENSE.TXT for details. 7 * 8 * ===----------------------------------------------------------------------=== 9 */ 10 11 12 13 #include "int_lib.h" 14 #include <stdio.h> 15 16 17 /* 18 * __eprintf() was used in an old version of <assert.h>. 19 * It can eventually go away, but it is needed when linking 20 * .o files built with the old <assert.h>. 21 * 22 * It should never be exported from a dylib, so it is marked 23 * visibility hidden. 24 */ 25 #ifndef _WIN32 26 __attribute__((visibility("hidden"))) 27 #endif 28 COMPILER_RT_ABI void 29 __eprintf(const char* format, const char* assertion_expression, 30 const char* line, const char* file) 31 { 32 fprintf(stderr, format, assertion_expression, line, file); 33 fflush(stderr); 34 compilerrt_abort(); 35 } 36