Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8160310 HotSpot cannot be built with GCC 6
  3. JDK-8160363

assert(discovered->is_oop_or_null()) failed: Expected an oop or NULL for discovered field at 0x0000000000000000

    Details

    • Type: Sub-task
    • Status: Resolved
    • Priority: P4
    • Resolution: Duplicate
    • Affects Version/s: 9
    • Fix Version/s: None
    • Component/s: hotspot
    • Labels:
      None

      Description

      This crash occurred in fastdebug JVM which was built by GCC 6.
      Address of pointer was expected (0x0), however is_oop_or_null() did not work.

      I do not understand why current code did not work, however it works fine as below:

      -------------------------
      --- old/src/share/vm/oops/oop.inline.hpp 2016-06-27 12:31:51.062240003 +0900
      +++ new/src/share/vm/oops/oop.inline.hpp 2016-06-27 12:31:50.922240253 +0900
      @@ -539,7 +539,7 @@

       // used only for asserts
       bool oopDesc::is_oop_or_null(bool ignore_mark_word) const {
      - return this == NULL ? true : is_oop(ignore_mark_word);
      + return (this == NULL) || is_oop(ignore_mark_word);
       }

       #ifndef PRODUCT
      -------------------------

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                ysuenaga Yasumasa Suenaga
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: