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

AARCH64: SymbolTable changes throw assert on aarch64

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 12
    • None
    • hotspot
    • 12
    • b08
    • aarch64
    • linux

      JDK-8195100 introduces an assert that does comparisons between jbyte and char:

        assert(sym->byte_at(i) == _name[i],
                   "%s [%d,%d,%d]", where, i, sym->byte_at(i), _name[i]);

      This fails with:
          assert(sym->byte_at(i) == _name[i]) failed: operator()() [0,-17,239]

      sym->byte_at(i) returns a jbyte, _name is an array of char.
       
      jbyte is a "signed char", however on aarch64 "char" is unsigned.

      The assertion is tripping because while the bits match, it is a comparison between an unsigned and a signed char.

      An obvious fix is to change the assertion to cast to make the types match. However, if there are other comparison operations, it might be better to change the definition of on off the strings.

            smonteith Stuart Monteith
            smonteith Stuart Monteith
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: