[gcc(refs/users/marxin/heads/gfc-trailing-spec)] Add trailing dots to gfc_build_library_function_decl_with_spec.
Martin Liska
marxin@gcc.gnu.org
Tue Sep 29 14:37:02 GMT 2020
https://gcc.gnu.org/g:3b1ff799c08f6e7adb3eb6fb988599197c639ec0
commit 3b1ff799c08f6e7adb3eb6fb988599197c639ec0
Author: Martin Liska <mliska@suse.cz>
Date: Tue Sep 29 16:35:12 2020 +0200
Add trailing dots to gfc_build_library_function_decl_with_spec.
gcc/fortran/ChangeLog:
* trans-decl.c (gfc_build_library_function_decl_with_spec): Add
runtime assert about length of SPEC argument.
(gfc_build_intrinsic_function_decls): Add trailing dots.
(gfc_build_builtin_function_decls): Likewise.
Diff:
---
gcc/fortran/trans-decl.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 92242771dde..ef9c3f7d28f 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -3303,6 +3303,7 @@ tree
gfc_build_library_function_decl_with_spec (tree name, const char *spec,
tree rettype, int nargs, ...)
{
+ gcc_checking_assert ((int)strlen (spec) == abs (nargs) + 1);
tree ret;
va_list args;
va_start (args, nargs);
@@ -3484,16 +3485,16 @@ gfc_build_intrinsic_function_decls (void)
/* Misc. functions. */
gfor_fndecl_ttynam = gfc_build_library_function_decl_with_spec (
- get_identifier (PREFIX("ttynam")), ".W",
+ get_identifier (PREFIX("ttynam")), ".W..",
void_type_node, 3, pchar_type_node, gfc_charlen_type_node,
integer_type_node);
gfor_fndecl_fdate = gfc_build_library_function_decl_with_spec (
- get_identifier (PREFIX("fdate")), ".W",
+ get_identifier (PREFIX("fdate")), ".W.",
void_type_node, 2, pchar_type_node, gfc_charlen_type_node);
gfor_fndecl_ctime = gfc_build_library_function_decl_with_spec (
- get_identifier (PREFIX("ctime")), ".W",
+ get_identifier (PREFIX("ctime")), ".W..",
void_type_node, 3, pchar_type_node, gfc_charlen_type_node,
gfc_int8_type_node);
@@ -3515,7 +3516,7 @@ gfc_build_intrinsic_function_decls (void)
TREE_NOTHROW (gfor_fndecl_si_kind) = 1;
gfor_fndecl_sr_kind = gfc_build_library_function_decl_with_spec (
- get_identifier (PREFIX("selected_real_kind2008")), ".RR",
+ get_identifier (PREFIX("selected_real_kind2008")), ".RR.",
gfc_int4_type_node, 3, pvoid_type_node, pvoid_type_node,
pvoid_type_node);
DECL_PURE_P (gfor_fndecl_sr_kind) = 1;
@@ -3662,7 +3663,7 @@ gfc_build_intrinsic_function_decls (void)
TREE_NOTHROW (gfor_fndecl_size0) = 1;
gfor_fndecl_size1 = gfc_build_library_function_decl_with_spec (
- get_identifier (PREFIX("size1")), ".R",
+ get_identifier (PREFIX("size1")), ".R.",
gfc_array_index_type, 2, pvoid_type_node, gfc_array_index_type);
DECL_PURE_P (gfor_fndecl_size1) = 1;
TREE_NOTHROW (gfor_fndecl_size1) = 1;
@@ -3701,7 +3702,7 @@ gfc_build_builtin_function_decls (void)
TREE_THIS_VOLATILE (gfor_fndecl_stop_numeric) = 1;
gfor_fndecl_stop_string = gfc_build_library_function_decl_with_spec (
- get_identifier (PREFIX("stop_string")), ".R.",
+ get_identifier (PREFIX("stop_string")), ".R..",
void_type_node, 3, pchar_type_node, size_type_node,
boolean_type_node);
/* STOP doesn't return. */
@@ -3714,7 +3715,7 @@ gfc_build_builtin_function_decls (void)
TREE_THIS_VOLATILE (gfor_fndecl_error_stop_numeric) = 1;
gfor_fndecl_error_stop_string = gfc_build_library_function_decl_with_spec (
- get_identifier (PREFIX("error_stop_string")), ".R.",
+ get_identifier (PREFIX("error_stop_string")), ".R..",
void_type_node, 3, pchar_type_node, size_type_node,
boolean_type_node);
/* ERROR STOP doesn't return. */
More information about the Gcc-cvs
mailing list