Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Oct 2004 17:16:40 +0000 (UTC)
From:      Greg Lewis <glewis@FreeBSD.org>
To:        ports-committers@FreeBSD.org, cvs-ports@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: ports/java/jdk14/files patch-interpreter_bytecodes.hpp
Message-ID:  <200410161716.i9GHGeaH022386@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
glewis      2004-10-16 17:16:40 UTC

  FreeBSD ports repository

  Added files:
    java/jdk14/files     patch-interpreter_bytecodes.hpp 
  Log:
  . Fix the Server VM for gcc 3.4 part 2/2.
    The HotSpot code (ab)uses named enums as ints in a number of places.
    The problem with this is that according the the C++ spec, the compiler
    (essentially) only needs to use an integral type wide enough to hold
    the values defined in the enum.  Earlier versions of gcc appear to have
    just used an int whether they could have got away with a narrower type
    or not, hence the code worked as expected.  gcc 3.4 now appears to
    implement this part of the spec, so using an enum blindly as an int
    causes various problems due to overflow.
  
    In this case the enum, Bytecodes::Code, appears to be a genuine enum,
    its just assumed to be wide enough to hold an arbitrary int in various
    places in the code.  The correct fix would be to track down all those
    places in the code and fix them.  Since there are quite a lot of these
    places and 5.3 is close to release for now we just add a value to the
    enum set to INT_MAX, forcing the compiler to use at least an int for the
    type.
  
  Sleuth work, discussion and code suggestions:   peadar
  
  Revision  Changes    Path
  1.1       +24 -0     ports/java/jdk14/files/patch-interpreter_bytecodes.hpp (new)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200410161716.i9GHGeaH022386>