diff options
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r-- | gcc/tree-ssa-structalias.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 99072df..5f24c01 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -4082,8 +4082,16 @@ handle_call_arg (gcall *stmt, tree arg, vec<ce_s> *results, int flags, { struct constraint_expr cexpr; cexpr.var = tem->id; - cexpr.type = SCALAR; - cexpr.offset = 0; + if (flags & EAF_NOT_RETURNED_DIRECTLY) + { + cexpr.type = DEREF; + cexpr.offset = UNKNOWN_OFFSET; + } + else + { + cexpr.type = SCALAR; + cexpr.offset = 0; + } results->safe_push (cexpr); } |