FreeBSD/contrib/gcc/c-common.c
/* Build builtin functions common to both C and C++ language
   frontends.  */
Build builtin functions common to both C and C++ language
frontends.
Build builtin functions common to both C and C ++ language frontends .
static void
c_define_builtins (tree va_list_ref_type_node, tree va_list_arg_type_node)
{
#define DEF_PRIMITIVE_TYPE(ENUM, VALUE) \
  builtin_types[ENUM] = VALUE;
#define DEF_FUNCTION_TYPE_0(ENUM, RETURN) \
  def_fn_type (ENUM, RETURN, 0, 0);
#define DEF_FUNCTION_TYPE_1(ENUM, RETURN, ARG1) \
  def_fn_type (ENUM, RETURN, 0, 1, ARG1);
#define DEF_FUNCTION_TYPE_2(ENUM, RETURN, ARG1, ARG2) \
  def_fn_type (ENUM, RETURN, 0, 2, ARG1, ARG2);
#define DEF_FUNCTION_TYPE_3(ENUM, RETURN, ARG1, ARG2, ARG3) \
  def_fn_type (ENUM, RETURN, 0, 3, ARG1, ARG2, ARG3);
#define DEF_FUNCTION_TYPE_4(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) \
  def_fn_type (ENUM, RETURN, 0, 4, ARG1, ARG2, ARG3, ARG4);
#define DEF_FUNCTION_TYPE_5(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5)	\
  def_fn_type (ENUM, RETURN, 0, 5, ARG1, ARG2, ARG3, ARG4, ARG5);
#define DEF_FUNCTION_TYPE_6(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \
			    ARG6)					\
  def_fn_type (ENUM, RETURN, 0, 6, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6);
#define DEF_FUNCTION_TYPE_7(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5, \
			    ARG6, ARG7)					\
  def_fn_type (ENUM, RETURN, 0, 7, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7);
#define DEF_FUNCTION_TYPE_VAR_0(ENUM, RETURN) \
  def_fn_type (ENUM, RETURN, 1, 0);
#define DEF_FUNCTION_TYPE_VAR_1(ENUM, RETURN, ARG1) \
  def_fn_type (ENUM, RETURN, 1, 1, ARG1);
#define DEF_FUNCTION_TYPE_VAR_2(ENUM, RETURN, ARG1, ARG2) \
  def_fn_type (ENUM, RETURN, 1, 2, ARG1, ARG2);
#define DEF_FUNCTION_TYPE_VAR_3(ENUM, RETURN, ARG1, ARG2, ARG3) \
  def_fn_type (ENUM, RETURN, 1, 3, ARG1, ARG2, ARG3);
#define DEF_FUNCTION_TYPE_VAR_4(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4) \
  def_fn_type (ENUM, RETURN, 1, 4, ARG1, ARG2, ARG3, ARG4);
#define DEF_FUNCTION_TYPE_VAR_5(ENUM, RETURN, ARG1, ARG2, ARG3, ARG4, ARG5) \
  def_fn_type (ENUM, RETURN, 1, 5, ARG1, ARG2, ARG3, ARG4, ARG5);
#define DEF_POINTER_TYPE(ENUM, TYPE) \
  builtin_types[(int) ENUM] = build_pointer_type (builtin_types[(int) TYPE]);
#include "builtin-types.def"
#undef DEF_PRIMITIVE_TYPE
#undef DEF_FUNCTION_TYPE_1
#undef DEF_FUNCTION_TYPE_2
#undef DEF_FUNCTION_TYPE_3
#undef DEF_FUNCTION_TYPE_4
#undef DEF_FUNCTION_TYPE_5
#undef DEF_FUNCTION_TYPE_6
#undef DEF_FUNCTION_TYPE_VAR_0
#undef DEF_FUNCTION_TYPE_VAR_1
#undef DEF_FUNCTION_TYPE_VAR_2
#undef DEF_FUNCTION_TYPE_VAR_3
#undef DEF_FUNCTION_TYPE_VAR_4
#undef DEF_FUNCTION_TYPE_VAR_5
#undef DEF_POINTER_TYPE
  builtin_types[(int) BT_LAST] = NULL_TREE;
  c_init_attributes ();
#define DEF_BUILTIN(ENUM, NAME, CLASS, TYPE, LIBTYPE, BOTH_P, FALLBACK_P, \
		    NONANSI_P, ATTRS, IMPLICIT, COND)			\
  if (NAME && COND)							\
    def_builtin_1 (ENUM, NAME, CLASS,                                   \
		   builtin_types[(int) TYPE],                           \
		   builtin_types[(int) LIBTYPE],                        \
		   BOTH_P, FALLBACK_P, NONANSI_P,                       \
		   built_in_attributes[(int) ATTRS], IMPLICIT);
#include "builtins.def"
#undef DEF_BUILTIN
  build_common_builtin_nodes ();
  targetm.init_builtins ();
  if (flag_mudflap)
    mudflap_init ();
}
static void c_define_builtins ( tree va_list_ref_type_node , tree va_list_arg_type_node ) { #define DEF_PRIMITIVE_TYPE ( ENUM , VALUE )  \
  builtin_types[ENUM] = VALUE; #define DEF_FUNCTION_TYPE_0 ( ENUM , RETURN )  \
  def_fn_type (ENUM, RETURN, 0, 0); #define DEF_FUNCTION_TYPE_1 ( ENUM , RETURN , ARG1 )  \
  def_fn_type (ENUM, RETURN, 0, 1, ARG1); #define DEF_FUNCTION_TYPE_2 ( ENUM , RETURN , ARG1 , ARG2 )  \
  def_fn_type (ENUM, RETURN, 0, 2, ARG1, ARG2); #define DEF_FUNCTION_TYPE_3 ( ENUM , RETURN , ARG1 , ARG2 , ARG3 )  \
  def_fn_type (ENUM, RETURN, 0, 3, ARG1, ARG2, ARG3); #define DEF_FUNCTION_TYPE_4 ( ENUM , RETURN , ARG1 , ARG2 , ARG3 , ARG4 )  \
  def_fn_type (ENUM, RETURN, 0, 4, ARG1, ARG2, ARG3, ARG4); #define DEF_FUNCTION_TYPE_5 ( ENUM , RETURN , ARG1 , ARG2 , ARG3 , ARG4 , ARG5 ) 	\
  def_fn_type (ENUM, RETURN, 0, 5, ARG1, ARG2, ARG3, ARG4, ARG5); #define DEF_FUNCTION_TYPE_6 ( ENUM , RETURN , ARG1 , ARG2 , ARG3 , ARG4 , ARG5 , ARG6 ) 					\
  def_fn_type (ENUM, RETURN, 0, 6, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6); #define DEF_FUNCTION_TYPE_7 ( ENUM , RETURN , ARG1 , ARG2 , ARG3 , ARG4 , ARG5 , ARG6 , ARG7 ) 					\
  def_fn_type (ENUM, RETURN, 0, 7, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7); #define DEF_FUNCTION_TYPE_VAR_0 ( ENUM , RETURN )  \
  def_fn_type (ENUM, RETURN, 1, 0); #define DEF_FUNCTION_TYPE_VAR_1 ( ENUM , RETURN , ARG1 )  \
  def_fn_type (ENUM, RETURN, 1, 1, ARG1); #define DEF_FUNCTION_TYPE_VAR_2 ( ENUM , RETURN , ARG1 , ARG2 )  \
  def_fn_type (ENUM, RETURN, 1, 2, ARG1, ARG2); #define DEF_FUNCTION_TYPE_VAR_3 ( ENUM , RETURN , ARG1 , ARG2 , ARG3 )  \
  def_fn_type (ENUM, RETURN, 1, 3, ARG1, ARG2, ARG3); #define DEF_FUNCTION_TYPE_VAR_4 ( ENUM , RETURN , ARG1 , ARG2 , ARG3 , ARG4 )  \
  def_fn_type (ENUM, RETURN, 1, 4, ARG1, ARG2, ARG3, ARG4); #define DEF_FUNCTION_TYPE_VAR_5 ( ENUM , RETURN , ARG1 , ARG2 , ARG3 , ARG4 , ARG5 )  \
  def_fn_type (ENUM, RETURN, 1, 5, ARG1, ARG2, ARG3, ARG4, ARG5); #define DEF_POINTER_TYPE ( ENUM , TYPE )  \
  builtin_types[(int) ENUM] = build_pointer_type (builtin_types[(int) TYPE]); #include " " #undef  DEF_PRIMITIVE_TYPE #undef  DEF_FUNCTION_TYPE_1 #undef  DEF_FUNCTION_TYPE_2 #undef  DEF_FUNCTION_TYPE_3 #undef  DEF_FUNCTION_TYPE_4 #undef  DEF_FUNCTION_TYPE_5 #undef  DEF_FUNCTION_TYPE_6 #undef  DEF_FUNCTION_TYPE_VAR_0 #undef  DEF_FUNCTION_TYPE_VAR_1 #undef  DEF_FUNCTION_TYPE_VAR_2 #undef  DEF_FUNCTION_TYPE_VAR_3 #undef  DEF_FUNCTION_TYPE_VAR_4 #undef  DEF_FUNCTION_TYPE_VAR_5 #undef  DEF_POINTER_TYPE builtin_types [ ( int ) BT_LAST ] = NULL_TREE ; c_init_attributes ( ) ; #define DEF_BUILTIN ( ENUM , NAME , CLASS , TYPE , LIBTYPE , BOTH_P , FALLBACK_P , NONANSI_P , ATTRS , IMPLICIT , COND ) 			\
  if (NAME && COND)							\
    def_builtin_1 (ENUM, NAME, CLASS,                                   \
		   builtin_types[(int) TYPE],                           \
		   builtin_types[(int) LIBTYPE],                        \
		   BOTH_P, FALLBACK_P, NONANSI_P,                       \
		   built_in_attributes[(int) ATTRS], IMPLICIT); #include " " #undef  DEF_BUILTIN build_common_builtin_nodes ( ) ; targetm . init_builtins ( ) ; if ( flag_mudflap ) mudflap_init ( ) ; }
Build builtin functions common to both C and C++ language
frontends.
Build builtin functions common to both C and C ++ language frontends .