diff options
author | meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-12-10 23:47:59 +0000 |
---|---|---|
committer | meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-12-10 23:47:59 +0000 |
commit | e9f2752c36f28ed8171c5aa27cd9ed0279d491dd (patch) | |
tree | adad0f90141713da3675a70446f551f84710163a | |
parent | 9e4054cab91bc8bde1772d86a06859711fe496ac (diff) |
Merge up to revision 130757ix86/gcc-4_1-branch
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/tags/ix86/gcc-4_1-branch@130760 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/DATESTAMP | 2 | ||||
-rw-r--r-- | gcc/fold-const.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/pr34130.c | 12 | ||||
-rw-r--r-- | svn-mergepoint | 1 |
6 files changed, 34 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8de09945cf2..004fe65d805 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2007-11-29 Matthias Klose <doko@ubuntu.com> + + Backport from mainline: + 2007-11-17 Richard Guenther <rguenther@suse.de> + + PR middle-end/34130 + * fold-const.c (extract_muldiv_1): Do not move negative + constants inside ABS_EXPR. + 2007-11-16 Richard Guenther <rguenther@suse.de> PR middle-end/34030 diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index edb838c94c6..30a98ca3ef0 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20071126 +20071210 diff --git a/gcc/fold-const.c b/gcc/fold-const.c index f031825f7ba..f9e58d27591 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -5340,6 +5340,9 @@ extract_muldiv_1 (tree t, tree c, enum tree_code code, tree wide_type) } break; } + /* If the constant is negative, we cannot simplify this. */ + if (tree_int_cst_sgn (c) == -1) + break; /* FALLTHROUGH */ case NEGATE_EXPR: if ((t1 = extract_muldiv (op0, c, code, wide_type)) != 0) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7efd5b698d9..7b78678753e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2007-11-29 Matthias Klose <doko@ubuntu.com> + + Backport from mainline: + 2007-11-17 Richard Guenther <rguenther@suse.de> + + PR middle-end/34130 + * gcc.c-torture/execute/pr34130.c: New testcase. + 2007-11-16 Richard Guenther <rguenther@suse.de> PR middle-end/34030 diff --git a/gcc/testsuite/gcc.c-torture/execute/pr34130.c b/gcc/testsuite/gcc.c-torture/execute/pr34130.c new file mode 100644 index 00000000000..b528ff22b8a --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr34130.c @@ -0,0 +1,12 @@ +extern void abort (void); +int foo (int i) +{ + return -2 * __builtin_abs(i - 2); +} +int main() +{ + if (foo(1) != -2 + || foo(3) != -2) + abort (); + return 0; +} diff --git a/svn-mergepoint b/svn-mergepoint new file mode 100644 index 00000000000..c95b85b1d5c --- /dev/null +++ b/svn-mergepoint @@ -0,0 +1 @@ +130757 |