blob: 8d9ce327a60ca62f627ac3278bccefbad16eb93a [file] [log] [blame]
Edward O'Callaghan2bf62722009-08-05 04:02:56 +00001/* ===---------- eprintf.c - Implements __eprintf --------------------------===
2 *
3 * The LLVM Compiler Infrastructure
4 *
5 * This file is distributed under the University of Illinois Open Source
6 * License. See LICENSE.TXT for details.
7 *
8 * ===----------------------------------------------------------------------===
9 */
Daniel Dunbarb3a69012009-06-26 16:47:03 +000010
11
12
13#include <stdio.h>
14#include <stdlib.h>
15
16
Edward O'Callaghan2bf62722009-08-05 04:02:56 +000017/*
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 */
Daniel Dunbarb3a69012009-06-26 16:47:03 +000025__attribute__((visibility("hidden")))
26void __eprintf(const char* format, const char* assertion_expression,
27 const char* line, const char* file)
28{
29 fprintf(stderr, format, assertion_expression, line, file);
30 fflush(stderr);
31 abort();
32}