aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-structalias.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r--gcc/tree-ssa-structalias.c12
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);
}