From 258dfcb78d62909fc80092b4512093c0c85ad83a Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Wed, 24 May 2017 08:12:27 +0000 Subject: var-tracking.c (track_expr_p): Do not return 0 for tracked record parameters passed indirectly. * var-tracking.c (track_expr_p): Do not return 0 for tracked record parameters passed indirectly. From-SVN: r248402 --- gcc/var-tracking.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gcc/var-tracking.c') diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index 1b9f8dd..5c38c1d 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -5220,8 +5220,9 @@ track_expr_p (tree expr, bool need_rtl) if (decl_rtl && MEM_P (decl_rtl)) { /* Do not track structures and arrays. */ - if (GET_MODE (decl_rtl) == BLKmode - || AGGREGATE_TYPE_P (TREE_TYPE (realdecl))) + if ((GET_MODE (decl_rtl) == BLKmode + || AGGREGATE_TYPE_P (TREE_TYPE (realdecl))) + && !tracked_record_parameter_p (realdecl)) return 0; if (MEM_SIZE_KNOWN_P (decl_rtl) && MEM_SIZE (decl_rtl) > MAX_VAR_PARTS) -- cgit v1.1