[Bug middle-end/14187] [tree-ssa] C restricted pointers are not properly implemented

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Mon Jun 29 12:24:00 GMT 2009



------- Comment #16 from rguenth at gcc dot gnu dot org  2009-06-29 12:23 -------
Subject: Bug 14187

Author: rguenth
Date: Mon Jun 29 12:23:21 2009
New Revision: 149048

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=149048
Log:
2009-06-29  Richard Guenther  <rguenther@suse.de>

        PR middle-end/14187
        * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
        flag.
        (pt_solutions_same_restrict_base): Declare.
        * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
        flag.
        (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
        (make_constraint_from, make_copy_constraint): Move earlier.
        (make_constraint_from_heapvar): New function.
        (make_constraint_from_restrict): Likewise.
        (handle_lhs_call): Use it.
        (find_func_aliases): Use it to track conversions to restrict
        qualified pointers.
        (struct fieldoff): Add only_restrict_pointers flag.
        (push_fields_onto_fieldstack): Initialize it.
        (create_variable_info_for): Track global restrict qualified pointers.
        (intra_create_variable_infos): Use make_constraint_from_heapvar.
        Track restrict qualified pointer arguments.
        (set_uids_in_ptset): Use varinfo is_global_var flag.
        (find_what_var_points_to): Set the vars_contains_restrict flag.
        Always create the points-to solution for sets including restrict tags.
        (pt_solutions_same_restrict_base): New function.
        * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
        qualified pointers use pt_solutions_same_restrict_base as
        additional source for disambiguation.

        * gcc.dg/tree-ssa/restrict-1.c: New testcase.
        * gcc.dg/tree-ssa/restrict-2.c: Likewise.
        * gcc.dg/tree-ssa/restrict-3.c: Likewise.
        * gcc.c-torture/execute/20090623-1.c: Likewise.
        * gcc.dg/tree-ssa/ldist-13.c: Likewise.
        * gcc.dg/tree-ssa/ldist-14.c: Likewise.

Added:
    trunk/gcc/testsuite/gcc.c-torture/execute/20090623-1.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ldist-13.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/ldist-14.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/restrict-1.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/restrict-2.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/restrict-3.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-ssa-alias.c
    trunk/gcc/tree-ssa-alias.h
    trunk/gcc/tree-ssa-structalias.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14187



More information about the Gcc-bugs mailing list