This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] doloop_optimize miscompiles openssl
> From: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
> Date: Thu, 28 Sep 2000 19:37:21 +0200
> Cc: Geoff Keating <geoffk@cygnus.com>, gcc-patches@gcc.gnu.org,
> Michael Hayes <mhayes@cygnus.com>
>
>
> --------------Boundary-00=_9AYLYQAQWCV0RI0MRPT1
> Content-Type: text/plain
> Content-Transfer-Encoding: 8bit
>
> On Wed, 27 Sep 2000, Franz Sirl wrote:
> > At 13:57 27.09.00, Michael Hayes wrote:
> > >Franz Sirl writes:
> > > > BTW, I will try to turn both testcases in this thread into executable
> > > > testcases.
> > >
> > >This would be useful. I haven't had a chance to look at this thread
> > >yet; could you post me a simple testcase?
> >
> > The other testcase is at
> > <http://gcc.gnu.org/ml/gcc-patches/2000-09/msg00999.html>. I converted this
> > one into an non-PPC specific executable testcase too. I'll post my current
> > patch and the executable testcases later today.
>
> Here is my final patch (sorry for the delay, but I couldn't reach gcc.gnu.org
> yesterday anymore) and the executable testcases extracted from openssl.
>
> GCC with the patch bootstraps fine and causes no regressions in the testsuite.
>
> OK to commit the patch and the testcases?
The patch is OK.
The testcases are not. I believe they are under this license:
* Copyright remains Eric Young's, and as such any Copyright notices in
* the code are not to be removed.
* If this package is used in a product, Eric Young should be given attribution
* as the author of the parts of the library used.
* This can be in the form of a textual message at program startup or
* in documentation (online or textual) provided with the package.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* "This product includes cryptographic software written by
* Eric Young (eay@cryptsoft.com)"
* The word 'cryptographic' can be left out if the rouines from the library
* being used are not cryptographic related :-).
* 4. If you include any Windows specific code (or a derivative thereof) from
* the apps directory (application code) you must include an acknowledgement:
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
*
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* The licence and distribution terms for any publically available version or
* derivative of this code cannot be changed. i.e. this code cannot simply be
* copied and put under another distribution licence
* [including the GNU Public Licence.]
Clause (3) above is not acceptable for code contributed to the GCC
project, even as testcases. Also, you've removed the copyright
notices, which is generally not allowed.
> Franz.
>
> * doloop.c (doloop_modify): Prevent delete_insn() from
> deleting too much. Prefer loop->top over loop->start as
> target for the new JUMP insn.
> (doloop_valid_p): Ignore loop with exit_count != 0.
--
- Geoffrey Keating <geoffk@cygnus.com>