aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-05-16 11:37:43 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2019-05-16 11:37:43 +0200
commit4b8e35f1b1df60633aeb0bf37ea9f6311f2132b9 (patch)
tree3f485b6b1cf328ccbe3d102f53c45fc88878f488 /gcc/tree.h
parent86c23d9314c4081c13ebf629fd3393de4e316bf6 (diff)
downloadgcc-4b8e35f1b1df60633aeb0bf37ea9f6311f2132b9.zip
gcc-4b8e35f1b1df60633aeb0bf37ea9f6311f2132b9.tar.gz
gcc-4b8e35f1b1df60633aeb0bf37ea9f6311f2132b9.tar.bz2
re PR fortran/90329 (Incompatibility between gfortran and C lapack calls)
PR fortran/90329 * tree-core.h (struct tree_decl_common): Document decl_nonshareable_flag for PARM_DECLs. * tree.h (DECL_HIDDEN_STRING_LENGTH): Define. * calls.c (expand_call): Don't try tail call if caller has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be passed on the stack and callee needs to pass any arguments on the stack. * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use else if instead of series of mutually exclusive ifs. Handle DECL_HIDDEN_STRING_LENGTH for PARM_DECLs. * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. * trans-decl.c (create_function_arglist): Set DECL_HIDDEN_STRING_LENGTH on hidden string length PARM_DECLs if len is constant. From-SVN: r271285
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index d65affe..3a1e6767 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -904,6 +904,11 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
(TREE_CHECK2 (NODE, VAR_DECL, \
RESULT_DECL)->decl_common.decl_nonshareable_flag)
+/* In a PARM_DECL, set for Fortran hidden string length arguments that some
+ buggy callers don't pass to the callee. */
+#define DECL_HIDDEN_STRING_LENGTH(NODE) \
+ (TREE_CHECK (NODE, PARM_DECL)->decl_common.decl_nonshareable_flag)
+
/* In a CALL_EXPR, means that the call is the jump from a thunk to the
thunked-to function. */
#define CALL_FROM_THUNK_P(NODE) (CALL_EXPR_CHECK (NODE)->base.protected_flag)