From: GitHub <no...@gi...> - 2016-03-20 13:58:52
|
Branch: refs/heads/master Home: https://github.com/JikesRVM/JikesRVM Commit: 064074a7a422479767eea7df8abf6cd7b1f58bf0 https://github.com/JikesRVM/JikesRVM/commit/064074a7a422479767eea7df8abf6cd7b1f58bf0 Author: Erik Brangs <eri...@gm...> Date: 2016-03-20 (Sun, 20 Mar 2016) Changed paths: R common/vmmagic/src/org/vmmagic/pragma/NoEscapes.java M libraryInterface/Harmony/ASF/src/java/lang/Throwable.java M rvm/src/org/jikesrvm/classloader/AnnotatedElement.java M rvm/src/org/jikesrvm/compilers/opt/escape/SimpleEscape.java M testing/tests/opttests/build.xml A testing/tests/opttests/src/test/org/jikesrvm/opttests/bugs/RVM_964_Testcase.expected A testing/tests/opttests/src/test/org/jikesrvm/opttests/bugs/RVM_964_Testcase.java M tools/asm-tasks/src/org/jikesrvm/tools/asm/AnnotationAdder.java Log Message: ----------- RVM-964 : Change scalar replacement of Throwable constructors to only apply to constructors without arguments. Removing the call to constructors with arguments is incorrect. Constructors without arguments, however, only fill in the stack traces and don't do anything else. If the compiler can prove that the stack trace is unnecessary (e.g. because the exception is guaranteed to be caught before the stack trace is accessed), it is correct to remove the call to the constructor. The @NoEscapes annotation was only used for annotating Throwable constructors. Those are now handled explicitly, so the annotation is removed. |