From be20459e0a6cdb0f73369b95024a51f57d983055 Mon Sep 17 00:00:00 2001 From: Manuel Novoa III Date: Sun, 31 Oct 2004 20:42:27 +0000 Subject: Integrate some patches extracted from gcc-3.4_3.4.2-3.diff. --- toolchain/gcc/3.4.2/300-pr15526.patch | 53 +++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 toolchain/gcc/3.4.2/300-pr15526.patch (limited to 'toolchain/gcc/3.4.2/300-pr15526.patch') diff --git a/toolchain/gcc/3.4.2/300-pr15526.patch b/toolchain/gcc/3.4.2/300-pr15526.patch new file mode 100644 index 000000000..f01c59f11 --- /dev/null +++ b/toolchain/gcc/3.4.2/300-pr15526.patch @@ -0,0 +1,53 @@ +# DP: 2004-09-26 Roger Sayle +# DP: +# DP: PR other/15526 +# DP: Backport from mainline +# DP: 2004-05-20 Falk Hueffner +# DP: * libgcc2.c (__mulvsi3): Fix overflow test. + +diff -u -r1.170.6.1 -r1.170.6.2 +--- gcc/gcc/libgcc2.c 2004/07/17 21:18:47 1.170.6.1 ++++ gcc/gcc/libgcc2.c 2004/09/26 20:47:14 1.170.6.2 +@@ -130,9 +130,7 @@ + { + const DWtype w = (DWtype) a * (DWtype) b; + +- if (((a >= 0) == (b >= 0)) +- ? (UDWtype) w > (UDWtype) (((DWtype) 1 << (WORD_SIZE - 1)) - 1) +- : (UDWtype) w < (UDWtype) ((DWtype) -1 << (WORD_SIZE - 1))) ++ if ((Wtype) (w >> WORD_SIZE) != (Wtype) w >> (WORD_SIZE - 1)) + abort (); + + return w; + +/cvs/gcc/gcc/gcc/testsuite/gcc.dg/ftrapv-1.c,v --> standard output +revision 1.1.22.1 +--- gcc/gcc/testsuite/gcc.dg/ftrapv-1.c ++++ /dev/null 2004-10-15 06:22:06.980596000 +0000 +@@ -0,0 +1,25 @@ ++/* Copyright (C) 2004 Free Software Foundation. ++ ++ PR other/15526 ++ Verify correct overflow checking with -ftrapv. ++ ++ Written by Falk Hueffner, 20th May 2004. */ ++ ++/* { dg-do run } */ ++/* { dg-options "-ftrapv" } */ ++ ++__attribute__((noinline)) int ++mulv(int a, int b) ++{ ++ return a * b; ++} ++ ++int ++main() ++{ ++ mulv( 0, 0); ++ mulv( 0, -1); ++ mulv(-1, 0); ++ mulv(-1, -1); ++ return 0; ++} + -- cgit v1.2.3