diff options
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/fortran/Make-lang.in | 4 | ||||
-rw-r--r-- | gcc/fortran/f95-lang.c | 40 | ||||
-rw-r--r-- | gcc/fortran/trans.h | 3 |
4 files changed, 20 insertions, 39 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 53b7b300764..630ffe04872 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,15 @@ +2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com> + + * Make-lang.in (f951$(exeext)): Depend on and link with attribs.o. + * trans.h (builtin_function): Rename to gfc_builtin_function. + Change the signature. + * 95-lang.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as + gfc_builtin_function. + (builtin_function): Rename to gfc_builtin_function. Move common + code to builtin_function. + (gfc_define_builtin): Replace calls to builtin_function with + gfc_define_builtin. + 2006-10-22 Francois-Xavier Coudert <coudert@clipper.ens.fr> PR fortran/26025 diff --git a/gcc/fortran/Make-lang.in b/gcc/fortran/Make-lang.in index cc38e69b140..f99f0be0b9c 100644 --- a/gcc/fortran/Make-lang.in +++ b/gcc/fortran/Make-lang.in @@ -102,9 +102,9 @@ gfortran-cross$(exeext): gfortran$(exeext) # The compiler itself is called f951. f951$(exeext): $(F95_OBJS) \ - $(BACKEND) $(LIBDEPS) + $(BACKEND) $(LIBDEPS) attribs.o $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ \ - $(F95_OBJS) $(BACKEND) $(LIBS) + $(F95_OBJS) $(BACKEND) $(LIBS) attribs.o gt-fortran-trans.h : s-gtype; @true # diff --git a/gcc/fortran/f95-lang.c b/gcc/fortran/f95-lang.c index fb626f70446..263d6eefe39 100644 --- a/gcc/fortran/f95-lang.c +++ b/gcc/fortran/f95-lang.c @@ -124,6 +124,7 @@ static HOST_WIDE_INT gfc_get_alias_set (tree); #undef LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR #undef LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE #undef LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES +#undef LANG_HOOKS_BUILTIN_FUNCTION /* Define lang hooks. */ #define LANG_HOOKS_NAME "GNU F95" @@ -150,6 +151,7 @@ static HOST_WIDE_INT gfc_get_alias_set (tree); #define LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE gfc_omp_private_debug_clause #define LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES \ gfc_omp_firstprivatize_type_sizes +#define LANG_HOOKS_BUILTIN_FUNCTION gfc_builtin_function const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; @@ -723,43 +725,11 @@ int ggc_p = 1; /* Builtin function initialization. */ -/* Return a definition for a builtin function named NAME and whose data type - is TYPE. TYPE should be a function type with argument types. - FUNCTION_CODE tells later passes how to compile calls to this function. - See tree.h for its possible values. - - If LIBRARY_NAME is nonzero, use that for DECL_ASSEMBLER_NAME, - the name to be called if we can't opencode the function. If - ATTRS is nonzero, use that for the function's attribute list. */ - tree -builtin_function (const char *name, - tree type, - int function_code, - enum built_in_class class, - const char *library_name, - tree attrs) +gfc_builtin_function (tree decl) { - tree decl = build_decl (FUNCTION_DECL, get_identifier (name), type); - DECL_EXTERNAL (decl) = 1; - TREE_PUBLIC (decl) = 1; - if (library_name) - SET_DECL_ASSEMBLER_NAME (decl, get_identifier (library_name)); make_decl_rtl (decl); pushdecl (decl); - DECL_BUILT_IN_CLASS (decl) = class; - DECL_FUNCTION_CODE (decl) = function_code; - - /* Possibly apply some default attributes to this built-in function. */ - if (attrs) - { - /* FORNOW the only supported attribute is "const". If others need - to be supported then see the more general solution in procedure - builtin_function in c-decl.c */ - if (lookup_attribute ( "const", attrs )) - TREE_READONLY (decl) = 1; - } - return decl; } @@ -773,8 +743,8 @@ gfc_define_builtin (const char * name, { tree decl; - decl = builtin_function (name, type, code, BUILT_IN_NORMAL, - library_name, NULL_TREE); + decl = add_builtin_function (name, type, code, BUILT_IN_NORMAL, + library_name, NULL_TREE); if (const_p) TREE_READONLY (decl) = 1; diff --git a/gcc/fortran/trans.h b/gcc/fortran/trans.h index e8bb1d5d6aa..f471f093af9 100644 --- a/gcc/fortran/trans.h +++ b/gcc/fortran/trans.h @@ -446,8 +446,7 @@ void pushlevel (int); tree poplevel (int, int, int); tree getdecls (void); tree gfc_truthvalue_conversion (tree); -tree builtin_function (const char *, tree, int, enum built_in_class, - const char *, tree); +tree gfc_builtin_function (tree); /* In trans-openmp.c */ bool gfc_omp_privatize_by_reference (tree); |