177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao/* ===---------- eprintf.c - Implements __eprintf --------------------------===
277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao *
377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao *                     The LLVM Compiler Infrastructure
477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao *
577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao * This file is distributed under the University of Illinois Open Source
677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao * License. See LICENSE.TXT for details.
777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao *
877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao * ===----------------------------------------------------------------------===
977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao */
1077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include <stdio.h>
1477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include <stdlib.h>
1577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao/*
1877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao * __eprintf() was used in an old version of <assert.h>.
1977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao * It can eventually go away, but it is needed when linking
2077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao * .o files built with the old <assert.h>.
2177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao *
2277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao * It should never be exported from a dylib, so it is marked
2377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao * visibility hidden.
2477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao */
2577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao__attribute__((visibility("hidden")))
2677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaovoid __eprintf(const char* format, const char* assertion_expression,
2777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao				const char* line, const char* file)
2877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao{
2977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	fprintf(stderr, format, assertion_expression, line, file);
3077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	fflush(stderr);
3177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao	abort();
3277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
33