Index: libcfa/builtins.c
===================================================================
--- libcfa/builtins.c	(revision 51b734528489f81a5af985bfee9aa3b6625b9774)
+++ libcfa/builtins.c	(revision 51b734528489f81a5af985bfee9aa3b6625b9774)
@@ -0,0 +1,96 @@
+// "gcc -E builtins.c"
+
+#define DEF_BUILTIN(ENUM, NAME, CLASS, TYPE, LIBTYPE, BOTH_P, FALLBACK_P, NONANSI_P) TYPE(NAME)
+#define FUNC_SIMPLE(RETURN, NAME) RETURN NAME();
+#define BT_LAST(x)
+
+#define BT_VOID void
+#define BT_INT int
+#define BT_UNSIGNED unsigned
+#define BT_LONG long
+#define BT_LONGLONG long long
+#define BT_FLOAT float
+#define BT_INTMAX long long
+#define BT_DOUBLE double
+#define BT_LONG_DOUBLE long double
+#define BT_COMPLEX_FLOAT _Complex float
+#define BT_COMPLEX_DOUBLE _Complex double
+#define BT_COMPLEX_LONG_DOUBLE _Complex long double
+
+#define BT_PTR void*
+#define BT_CONST_PTR const void*
+#define BT_TRAD_PTR char*
+#define BT_TRAD_CONST_PTR const char*
+#define BT_SIZE unsigned long
+#define BT_STRING char*
+#define BT_CONST_STRING const char*
+#define BT_LEN unsigned long
+
+#define BT_FN_VOID(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+#define BT_FN_PTR(NAME) FUNC_SIMPLE(BT_PTR, NAME)
+#define BT_FN_UNSIGNED(NAME) FUNC_SIMPLE(BT_UNSIGNED, NAME)
+
+#define BT_FN_LONG_LONG(NAME) FUNC_SIMPLE(BT_LONG, NAME)
+#define BT_FN_LONGLONG_LONGLONG(NAME) FUNC_SIMPLE(BT_LONGLONG, NAME)
+#define BT_FN_INTMAX_INTMAX(NAME) FUNC_SIMPLE(BT_INTMAX, NAME)
+#define BT_FN_FLOAT_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME)
+#define BT_FN_DOUBLE_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME)
+#define BT_FN_LONG_DOUBLE_LONG_DOUBLE(NAME) FUNC_SIMPLE(BT_LONG_DOUBLE, NAME)
+#define BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT(NAME) FUNC_SIMPLE(BT_COMPLEX_FLOAT, NAME)
+#define BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_DOUBLE, NAME)
+#define BT_FN_COMPLEX_LONG_DOUBLE_COMPLEX_LONG_DOUBLE(NAME) FUNC_SIMPLE(BT_COMPLEX_LONG_DOUBLE, NAME)
+#define BT_FN_FLOAT_COMPLEX_FLOAT(NAME) FUNC_SIMPLE(BT_FLOAT, NAME)
+#define BT_FN_DOUBLE_COMPLEX_DOUBLE(NAME) FUNC_SIMPLE(BT_DOUBLE, NAME)
+#define BT_FN_LONG_DOUBLE_COMPLEX_LONG_DOUBLE(NAME) FUNC_SIMPLE(BT_LONG_DOUBLE, NAME)
+#define BT_FN_PTR_UNSIGNED(NAME) FUNC_SIMPLE(BT_PTR, NAME)
+#define BT_FN_PTR_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME)
+#define BT_FN_INT_INT(NAME) FUNC_SIMPLE(BT_INT, NAME)
+#define BT_FN_INT_PTR(NAME) FUNC_SIMPLE(BT_INT, NAME)
+#define BT_FN_VOID_PTR(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+#define BT_FN_LEN_CONST_STRING(NAME) FUNC_SIMPLE(BT_LEN, NAME)
+#define BT_FN_INT_CONST_STRING(NAME) FUNC_SIMPLE(BT_INT, NAME)
+#define BT_FN_PTR_PTR(NAME) FUNC_SIMPLE(BT_PTR, NAME)
+#define BT_FN_VOID_VALIST_REF(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+#define BT_FN_VOID_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+
+#define BT_FN_VOID_PTR_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+#define BT_FN_STRING_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_STRING, NAME)
+#define BT_FN_INT_CONST_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_INT, NAME)
+#define BT_FN_STRING_CONST_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_STRING, NAME)
+#define BT_FN_SIZE_CONST_STRING_CONST_STRING(NAME) FUNC_SIMPLE(BT_SIZE, NAME)
+#define BT_FN_STRING_CONST_STRING_INT(NAME) FUNC_SIMPLE(BT_STRING, NAME)
+#define BT_FN_INT_CONST_STRING_PTR(NAME) FUNC_SIMPLE(BT_INT, NAME)
+#define BT_FN_INT_INT_PTR(NAME) FUNC_SIMPLE(BT_INT, NAME)
+#define BT_FN_VOID_PTRMODE_PTR(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+#define BT_FN_VOID_VALIST_REF_VALIST_ARG(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+#define BT_FN_LONG_LONG_LONG(NAME) FUNC_SIMPLE(BT_LONG, NAME)
+#define BT_FN_INT_PTR_CONST_STRING(NAME) FUNC_SIMPLE(BT_INT, NAME)
+#define BT_FN_VOID_TRAD_PTR_LEN(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+
+#define BT_FN_STRING_STRING_CONST_STRING_SIZE(NAME) FUNC_SIMPLE(BT_STRING, NAME)
+#define BT_FN_INT_CONST_STRING_CONST_STRING_SIZE(NAME) FUNC_SIMPLE(BT_INT, NAME)
+#define BT_FN_TRAD_PTR_PTR_CONST_PTR_SIZE(NAME) FUNC_SIMPLE(BT_TRAD_PTR, NAME)
+#define BT_FN_INT_CONST_PTR_CONST_PTR_SIZE(NAME) FUNC_SIMPLE(BT_INT, NAME)
+#define BT_FN_TRAD_PTR_PTR_INT_SIZE(NAME) FUNC_SIMPLE(BT_TRAD_PTR, NAME)
+#define BT_FN_INT_TRAD_CONST_PTR_TRAD_CONST_PTR_LEN(NAME) FUNC_SIMPLE(BT_INT, NAME)
+#define BT_FN_VOID_PTR_INT_INT(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+
+#define BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR(NAME) FUNC_SIMPLE(BT_SIZE, NAME)
+
+#define BT_FN_VOID_VAR(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+#define BT_FN_INT_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME)
+#define BT_FN_PTR_VAR(NAME) FUNC_SIMPLE(BT_PTR, NAME)
+
+#define BT_FN_VOID_VALIST_REF_VAR(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+#define BT_FN_VOID_CONST_PTR_VAR(NAME) FUNC_SIMPLE(BT_VOID, NAME)
+#define BT_FN_INT_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME)
+
+#define BT_FN_INT_PTR_CONST_STRING_VAR(NAME) FUNC_SIMPLE(BT_INT, NAME)
+
+#define BT_FN_PTR_PTR_FN_VOID_VAR_PTR_SIZE(NAME) FUNC_SIMPLE(BT_PTR, NAME)
+
+#include "builtins.def"
+
+typedef void ** __builtin_va_list;
+extern const char *__PRETTY_FUNCTION__;
+typedef int wchar_t;
