diff options
author | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-02-10 18:07:31 +0000 |
---|---|---|
committer | mrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-02-10 18:07:31 +0000 |
commit | fe34354e72b674130ffcf5a67e2d0b3b7307383e (patch) | |
tree | ca6f19ee04949a3bcd2ab0374a056dcb46fc2056 /gcc/tree-ssa-structalias.c | |
parent | 8b3716ff7532ddf9cb6f3ae6beac038506b70941 (diff) | |
parent | bf62ed7307453c4f8d35c952fba2c2a5d990b1a4 (diff) | |
download | gcc-fe34354e72b674130ffcf5a67e2d0b3b7307383e.tar.gz |
Merge in trunk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@207666 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-structalias.c')
-rw-r--r-- | gcc/tree-ssa-structalias.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index e887286c048..e1a9cfb9fea 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -3981,7 +3981,7 @@ handle_lhs_call (gimple stmt, tree lhs, int flags, vec<ce_s> rhsc, struct constraint_expr tmpc; rhsc.create (0); vi = make_heapvar ("HEAP"); - /* We marking allocated storage local, we deal with it becoming + /* We are marking allocated storage local, we deal with it becoming global by escaping and setting of vars_contains_escaped_heap. */ DECL_EXTERNAL (vi->decl) = 0; vi->is_global_var = 0; @@ -4230,6 +4230,26 @@ find_func_aliases_for_builtin_call (gimple t) lhsc.release (); return true; } + case BUILT_IN_POSIX_MEMALIGN: + { + tree ptrptr = gimple_call_arg (t, 0); + get_constraint_for (ptrptr, &lhsc); + do_deref (&lhsc); + varinfo_t vi = make_heapvar ("HEAP"); + /* We are marking allocated storage local, we deal with it becoming + global by escaping and setting of vars_contains_escaped_heap. */ + DECL_EXTERNAL (vi->decl) = 0; + vi->is_global_var = 0; + struct constraint_expr tmpc; + tmpc.var = vi->id; + tmpc.offset = 0; + tmpc.type = ADDRESSOF; + rhsc.safe_push (tmpc); + process_all_all_constraints (lhsc, rhsc); + lhsc.release (); + rhsc.release (); + return true; + } case BUILT_IN_ASSUME_ALIGNED: { tree res = gimple_call_lhs (t); @@ -4959,6 +4979,7 @@ find_func_clobbers (gimple origt) its argument. */ case BUILT_IN_MEMSET: case BUILT_IN_MEMSET_CHK: + case BUILT_IN_POSIX_MEMALIGN: { tree dest = gimple_call_arg (t, 0); unsigned i; |