ia32: Do not ignore the floating point control word anymore and make it callee-save.
[libfirm] / ir / common / error.c
index 4fe7f60..d18a121 100644 (file)
@@ -1,17 +1,28 @@
 /*
- * Project:     libFIRM
- * File name:   ir/common/error.c
- * Purpose:     Error handling for libFirm
- * Author:      Michael Beck
- * Modified by:
- * Created:
- * CVS-ID:      $Id$
- * Copyright:   (C) 1998-2006 Universität Karlsruhe
- * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
+ *
+ * This file is part of libFirm.
+ *
+ * This file may be distributed and/or modified under the terms of the
+ * GNU General Public License version 2 as published by the Free Software
+ * Foundation and appearing in the file LICENSE.GPL included in the
+ * packaging of this file.
+ *
+ * Licensees holding valid libFirm Professional Edition licenses may use
+ * this file in accordance with the libFirm Commercial License.
+ * Agreement provided with the Software.
+ *
+ * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+ * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
  */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+
+/**
+ * @file
+ * @brief     Error handling for libFirm
+ * @author    Michael Beck
+ */
+#include "config.h"
 
 #include <stdlib.h>
 
 #include "error.h"
 #include "irprintf.h"
 
-NORETURN panic(const char *fmt, ...) {
+NORETURN (panic)(char const *const file, int const line, char const *const func, char const *const fmt, ...)
+{
        va_list ap;
 
-       fputs("libFirm panic: ", stderr);
+       fprintf(stderr, "%s:%d: libFirm panic in %s: ", file, line, func);
        va_start(ap, fmt);
        ir_vfprintf(stderr, fmt, ap);
        va_end(ap);