From 762cca0023c9bdbd762c44f33a954845bbccd568 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 2 Oct 2020 15:56:12 +0200 Subject: Perforate fnspec strings gcc/ChangeLog: 2020-10-02 Jan Hubicka * attr-fnspec.h: Update documentation. (attr_fnsec::return_desc_size): Set to 2 (attr_fnsec::arg_desc_size): Set to 2 * builtin-attrs.def (STR1): Update fnspec. * internal-fn.def (UBSAN_NULL): Update fnspec. (UBSAN_VPTR): Update fnspec. (UBSAN_PTR): Update fnspec. (ASAN_CHECK): Update fnspec. (GOACC_DIM_SIZE): Remove fnspec. (GOACC_DIM_POS): Remove fnspec. * tree-ssa-alias.c (attr_fnspec::verify): Update verification. gcc/fortran/ChangeLog: 2020-10-02 Jan Hubicka * trans-decl.c (gfc_build_library_function_decl_with_spec): Verify fnspec. (gfc_build_intrinsic_function_decls): Update fnspecs. (gfc_build_builtin_function_decls): Update fnspecs. * trans-io.c (gfc_build_io_library_fndecls): Update fnspecs. * trans-types.c (create_fn_spec): Update fnspecs. --- gcc/attr-fnspec.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'gcc/attr-fnspec.h') diff --git a/gcc/attr-fnspec.h b/gcc/attr-fnspec.h index 607c0cf..921bb48 100644 --- a/gcc/attr-fnspec.h +++ b/gcc/attr-fnspec.h @@ -25,15 +25,22 @@ '1'...'4' specifies number of argument function returns (as in memset) 'm' specifies that returned value is noalias (as in malloc) '.' specifies that nothing is known. + character 1 specifies additional function properties + ' ' specifies that nothing is known - character 1+i specifies properties of argument number i as follows: + character 2+2i specifies properties of argument number i as follows: 'x' or 'X' specifies that parameter is unused. 'r' or 'R' specifies that parameter is only read and memory pointed to is never dereferenced. 'w' or 'W' specifies that parameter is only written to. '.' specifies that nothing is known. The uppercase letter in addition specifies that parameter - is non-escaping. */ + is non-escaping. + + character 3+2i specifies additional properties of argument number i + as follows: + ' ' nothing is known + */ #ifndef ATTR_FNSPEC_H #define ATTR_FNSPEC_H @@ -46,9 +53,9 @@ private: /* length of the fn spec string. */ const unsigned len; /* Number of characters specifying return value. */ - const unsigned int return_desc_size = 1; + const unsigned int return_desc_size = 2; /* Number of characters specifying size. */ - const unsigned int arg_desc_size = 1; + const unsigned int arg_desc_size = 2; /* Return start of specifier of arg i. */ unsigned int arg_idx (int i) -- cgit v1.1