From 824a2485e2c232a2416eb850aabce3c1028e05fc Mon Sep 17 00:00:00 2001 From: ebotcazou Date: Thu, 14 Dec 2017 17:17:03 +0000 Subject: [PATCH] * gcc-interface/misc.c (default_pass_by_ref): Minor tweak. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@255650 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/ChangeLog | 4 ++++ gcc/ada/gcc-interface/misc.c | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 350ac1f8d25..6a194bb4bd3 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,5 +1,9 @@ 2017-12-14 Eric Botcazou + * gcc-interface/misc.c (default_pass_by_ref): Minor tweak. + +2017-12-14 Eric Botcazou + * gcc-interface/trans.c (Call_to_gnu): Set DECL_DISREGARD_INLINE_LIMITS to 0 on the callee if the call is recursive. diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c index 9a4a48fba42..c45be734c32 100644 --- a/gcc/ada/gcc-interface/misc.c +++ b/gcc/ada/gcc-interface/misc.c @@ -1144,18 +1144,18 @@ default_pass_by_ref (tree gnu_type) is an In Out parameter, but it's probably best to err on the side of passing more things by reference. */ - if (pass_by_reference (NULL, TYPE_MODE (gnu_type), gnu_type, true)) - return true; - - if (targetm.calls.return_in_memory (gnu_type, NULL_TREE)) - return true; - if (AGGREGATE_TYPE_P (gnu_type) && (!valid_constant_size_p (TYPE_SIZE_UNIT (gnu_type)) || 0 < compare_tree_int (TYPE_SIZE_UNIT (gnu_type), TYPE_ALIGN (gnu_type)))) return true; + if (pass_by_reference (NULL, TYPE_MODE (gnu_type), gnu_type, true)) + return true; + + if (targetm.calls.return_in_memory (gnu_type, NULL_TREE)) + return true; + return false; } -- 2.11.4.GIT