diff options
author | Cecil Hugh Watson <knoppmyth@gmail.com> | 2010-09-04 22:58:18 (GMT) |
---|---|---|
committer | Cecil Hugh Watson <knoppmyth@gmail.com> | 2010-09-04 22:58:18 (GMT) |
commit | 947b0a71611be195c3d099bc247d9bdd194467e7 (patch) | |
tree | 675d6e52ed56b70d52bc94302854154effad1e9b /abs/core-testing/gcc/r160561.patch | |
parent | dc0c8146a39dca5deb78e6afb7a7234de4e1b21e (diff) | |
download | linhes_pkgbuild-947b0a71611be195c3d099bc247d9bdd194467e7.zip linhes_pkgbuild-947b0a71611be195c3d099bc247d9bdd194467e7.tar.gz linhes_pkgbuild-947b0a71611be195c3d099bc247d9bdd194467e7.tar.bz2 |
gcc:Bumped/Updated for LinHES 7.
Diffstat (limited to 'abs/core-testing/gcc/r160561.patch')
-rw-r--r-- | abs/core-testing/gcc/r160561.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/abs/core-testing/gcc/r160561.patch b/abs/core-testing/gcc/r160561.patch new file mode 100644 index 0000000..f3c386b --- /dev/null +++ b/abs/core-testing/gcc/r160561.patch @@ -0,0 +1,64 @@ +--- trunk/gcc/tree-sra.c 2010/06/10 16:44:04 160560 ++++ trunk/gcc/tree-sra.c 2010/06/10 16:49:09 160561 +@@ -1689,9 +1689,10 @@ + + /* Build a subtree of accesses rooted in *ACCESS, and move the pointer in the + linked list along the way. Stop when *ACCESS is NULL or the access pointed +- to it is not "within" the root. */ ++ to it is not "within" the root. Return false iff some accesses partially ++ overlap. */ + +-static void ++static bool + build_access_subtree (struct access **access) + { + struct access *root = *access, *last_child = NULL; +@@ -1706,24 +1707,32 @@ + last_child->next_sibling = *access; + last_child = *access; + +- build_access_subtree (access); ++ if (!build_access_subtree (access)) ++ return false; + } ++ ++ if (*access && (*access)->offset < limit) ++ return false; ++ ++ return true; + } + + /* Build a tree of access representatives, ACCESS is the pointer to the first +- one, others are linked in a list by the next_grp field. Decide about scalar +- replacements on the way, return true iff any are to be created. */ ++ one, others are linked in a list by the next_grp field. Return false iff ++ some accesses partially overlap. */ + +-static void ++static bool + build_access_trees (struct access *access) + { + while (access) + { + struct access *root = access; + +- build_access_subtree (&access); ++ if (!build_access_subtree (&access)) ++ return false; + root->next_grp = access; + } ++ return true; + } + + /* Return true if expr contains some ARRAY_REFs into a variable bounded +@@ -2062,9 +2071,7 @@ + struct access *access; + + access = sort_and_splice_var_accesses (var); +- if (access) +- build_access_trees (access); +- else ++ if (!access || !build_access_trees (access)) + disqualify_candidate (var, + "No or inhibitingly overlapping accesses."); + } |