From: Uros Bizjak Date: Mon, 29 Nov 2010 17:08:16 +0000 (+0100) Subject: [multiple changes] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=eab1da69ad8a6f76c60e5045a403cb8a924aa713;p=gcc.git [multiple changes] 2010-11-29 Zdenek Dvorak PR tree-optimization/46675 * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow in offset calculation. testsuite/ChangeLog: 2010-11-29 Richard Guenther Zdenek Dvorak PR tree-optimization/46675 * gcc.dg/pr46675.c: New test. From-SVN: r167256 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a12bbdef190..ca686329cb4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,13 @@ +2010-11-29 Zdenek Dvorak + + PR tree-optimization/46675 + * tree-ssa-loop-niter.c (split_to_var_and_offset): Avoid overflow + in offset calculation. + 2010-11-29 Jan Hubicka - * collect2.c (main): Do not imply verbose output with LTO and linker plugin. + * collect2.c (main): Do not imply verbose output with + LTO and linker plugin. 2010-11-29 Dodji Seketeli @@ -12,7 +19,7 @@ PR debug/46101 * dwarf2out.c (lookup_type_die_strip_naming_typedef): New function. - (scope_die_for, gen_type_die_for_member): Replace uses of + (scope_die_for, gen_type_die_for_member): Replace uses of lookup_type_die with use of lookup_type_die_strip_naming_typedef. 2010-11-29 Iain Sandoe @@ -74,12 +81,11 @@ (SECTION_NO_ANCHOR): Define. (TARGET_ASM_OUTPUT_ANCHOR) Define with a default of NULL. (DARWIN_SECTION_ANCHORS): Define with a default of 0. - + 2010-11-29 Joseph Myers * system.h: Include "safe-ctype.h" instead of . - Include , , and - . + Include , , and . (O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill): Conditionally define. (GET_ENVIRONMENT): Poison. @@ -111,8 +117,7 @@ * config/microblaze/microblaze.c: Don't include . * config/mips/mips.c: Don't include . * config/rs6000/host-darwin.c: Don't include . - * cppdefault.c (cpp_relocated): Use getenv instead of - GET_ENVIRONMENT. + * cppdefault.c (cpp_relocated): Use getenv instead of GET_ENVIRONMENT. * defaults.h (GET_ENVIRONMENT): Don't define. * et-forest.h: Don't include or . * gcc.c: Don't include , or . @@ -127,10 +132,8 @@ * ggc-zone.c: Don't include . (MAP_ANONYMOUS, MAP_FAILED): Don't define. * graph.c: Include "config.h" instead of . - * incpath.c (add_env_var_paths): Use getenv instead of - GET_ENVIRONMENT. - * lto-wrapper.c: Don't include , or - "libiberty.h". + * incpath.c (add_env_var_paths): Use getenv instead of GET_ENVIRONMENT. + * lto-wrapper.c: Don't include , or "libiberty.h". (SIGCHLD, kill): Don't define. * mips-tfile.c: Don't include . * opts.c: Don't include or . @@ -153,7 +156,7 @@ objc_begin_catch_clause() in that case. Improved error recovery. Reorganized code to be almost identical to cp_parser_objc_try_catch_finally_statement. - + 2010-11-29 Joern Rennecke PR tree-optimization/46621 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 19080bcb038..c4bf6203e78 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,28 +1,35 @@ +2010-11-29 Richard Guenther + Zdenek Dvorak + + PR tree-optimization/46675 + * gcc.dg/pr46675.c: New test. + 2010-11-29 Iain Sandoe * gcc/testsuite/objc.dg/strings-1.m: Move to... * gcc/testsuite/objc.dg/strings/strings-1.m: ... here. Update paths. * gcc/testsuite/objc.dg/strings-2.m: Move to ... - * gcc/testsuite/objc.dg/strings/strings-2.m ... here, provide a + * gcc/testsuite/objc.dg/strings/strings-2.m ... here, provide a constructor and class reference for NeXT runtime. Update paths. * gcc/testsuite/obj-c++.dg/strings-1.m: Move to... * gcc/testsuite/obj-c++.dg/strings/strings-1.m: ... here. Update paths. * gcc/testsuite/obj-c++.dg/strings-2.m: Move to ... - * gcc/testsuite/obj-c__.dg/strings/strings-2.m ... here, provide a + * gcc/testsuite/obj-c__.dg/strings/strings-2.m ... here, provide a constructor and class reference for NeXT runtime. Update paths. - + 2010-11-29 Dodji Seketeli PR c++/42260 * g++.dg/conversion/cast2.C: New test. - * g++.dg/conversion/cond4/C: Likewise. This ensures we don't regress on + PR c++/45383 + * g++.dg/conversion/cond4.C: Likewise. 2010-11-29 Dodji Seketeli PR c++/45383 Reverted patch for PR c++/42260 - * conversion/cast2.C: Reverted new test. + * g++.dg/conversion/cast2.C: Reverted new test. 2010-11-29 Dodji Seketeli @@ -91,21 +98,21 @@ 2010-11-27 Nicola Pero - PR objc++/46222 + PR objc++/46222 * obj-c++.dg/property/at-property-2.mm: Uncommented testcase. 2010-11-27 Nicola Pero * objc.dg/property/at-property-24.m: New. - * objc.dg/property/at-property-25.m: New. + * objc.dg/property/at-property-25.m: New. * obj-c++.dg/property/at-property-24.mm: New. * obj-c++.dg/property/at-property-25.mm: New. 2010-11-27 Nicola Pero - * objc.dg/protocol-qualifier-1.m: New. + * objc.dg/protocol-qualifier-1.m: New. * objc.dg/protocol-qualifier-2.m: New. - * obj-c++.dg/protocol-qualifier-1.mm: New. + * obj-c++.dg/protocol-qualifier-1.mm: New. * obj-c++.dg/protocol-qualifier-2.mm: New. 2010-11-26 Rainer Orth diff --git a/gcc/testsuite/gcc.dg/pr46675.c b/gcc/testsuite/gcc.dg/pr46675.c new file mode 100644 index 00000000000..7493f0e6032 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr46675.c @@ -0,0 +1,29 @@ +/* { dg-do run } */ +/* { dg-options "-O2" } */ + +extern void abort (void); + +int j; + +void +__attribute__((noinline)) +foo (int n) +{ + int npairs, i; + npairs = n - (-__INT_MAX__ - 1); + + if (npairs > 0) + for (i = 0; i < npairs; i++) + j++; +} + +int +main () +{ + foo (5 - __INT_MAX__ - 1); + + if (j != 5) + abort (); + + return 0; +} diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c index 94d150d8246..466cdae80b7 100644 --- a/gcc/tree-ssa-loop-niter.c +++ b/gcc/tree-ssa-loop-niter.c @@ -95,10 +95,10 @@ split_to_var_and_offset (tree expr, tree *var, mpz_t offset) *var = op0; /* Always sign extend the offset. */ off = tree_to_double_int (op1); - if (negate) - off = double_int_neg (off); off = double_int_sext (off, TYPE_PRECISION (type)); mpz_set_double_int (offset, off, false); + if (negate) + mpz_neg (offset, offset); break; case INTEGER_CST: