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

Logic in ConnectionGraph::split_unique_types() wrongly assumes node always have memory input

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 9
    • 9
    • hotspot
    • None
    • b131

      diff --git a/src/share/vm/opto/escape.cpp b/src/share/vm/opto/escape.cpp
      --- a/src/share/vm/opto/escape.cpp
      +++ b/src/share/vm/opto/escape.cpp
      @@ -3134,8 +3134,8 @@
               }
             } else {
               uint op = use->Opcode();
      - if ((use->in(MemNode::Memory) == n) &&
      - (op == Op_StrCompressedCopy || op == Op_StrInflatedCopy)) {
      + if ((op == Op_StrCompressedCopy || op == Op_StrInflatedCopy) &&
      + (use->in(MemNode::Memory) == n)) {
                 // They overwrite memory edge corresponding to destination array,
                 memnode_worklist.append_if_missing(use);
               } else if (!(op == Op_CmpP || op == Op_Conv2B ||


      If use is CmpP for instance it doesn't have a memory input. Harmless currently because edge referenced with MemNode::Memory is within bounds

            roland Roland Westrelin
            roland Roland Westrelin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: