From: Eric Botcazou Date: Tue, 3 Mar 2015 17:56:07 +0000 (+0000) Subject: fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before negating it. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3a5c579a89de0fe4afc697ed9bb59c71b42f6016;p=gcc.git fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before negating it. * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before negating it. * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message. From-SVN: r221159 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5c1bb270193..a562ee79d18 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2015-03-03 Eric Botcazou + + * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before + negating it. + + * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message. + 2015-03-03 Max Filippov Implement call0 ABI for xtensa diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 83771207c49..f9f7f26fd35 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -16032,7 +16032,7 @@ round_up_loc (location_t loc, tree value, unsigned int divisor) t = build_int_cst (TREE_TYPE (value), divisor - 1); value = size_binop_loc (loc, PLUS_EXPR, value, t); - t = build_int_cst (TREE_TYPE (value), -divisor); + t = build_int_cst (TREE_TYPE (value), - (HOST_WIDE_INT) divisor); value = size_binop_loc (loc, BIT_AND_EXPR, value, t); } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d1eaddb7e02..d38eb522768 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2015-03-03 Eric Botcazou + + * gnat.dg/object_overflow5.adb: New test. + 2015-03-03 Martin Liska PR ipa/65287 diff --git a/gcc/testsuite/gnat.dg/object_overflow5.adb b/gcc/testsuite/gnat.dg/object_overflow5.adb new file mode 100644 index 00000000000..4a4f6cfe30e --- /dev/null +++ b/gcc/testsuite/gnat.dg/object_overflow5.adb @@ -0,0 +1,20 @@ +-- { dg-do compile } + +procedure Object_Overflow5 is + + procedure Proc (c : Character) is begin null; end; + + type Index is new Long_Integer range 0 .. Long_Integer'Last; + + type Arr is array(Index range <>) of Character; + + type Rec (Size: Index := 6) is record -- { dg-warning "Storage_Error" } + A: Arr (0..Size); + end record; + + Obj : Rec; -- { dg-warning "Storage_Error" } + +begin + Obj.A(1) := 'a'; + Proc (Obj.A(1)); +end; diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index a6cddafe44b..0aed4d29c89 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -5144,7 +5144,7 @@ ipa_sra_preliminary_function_checks (struct cgraph_node *node) { if (dump_file) fprintf (dump_file, - "A function call has an argument with non-unit alignemnt.\n"); + "A function call has an argument with non-unit alignment.\n"); return false; }