Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8193567

Conversion of comparison nodes affects local slots in optimistic continuation

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 10
    • Component/s: core-libs
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b39
    • CPU:
      generic
    • OS:
      generic

      Backports

        Description

        LocalVariableTypesCalculator replaces some binary comparison nodes with RuntimeNodes depending on the types of their left and right sides. Since types can change between optimistic recompilations, it is possible that a BinaryNode is replaced by a RuntimeNode in a later compilation. Different nodes use different local slots, so the local slot layout may different between an initial optimistic version of a function and a recompiled restOf version of the function, causing the continuation handler to crash.

        This happens in version 2.0.3 of the CoffeeScript compiler when running with optimistic types enabled.

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  hannesw Hannes Wallnoefer
                  Reporter:
                  hannesw Hannes Wallnoefer
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  2 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: