RFR: 8250930: [TESTBUG] Some forceEarlyReturn00* tests failed due to compiler optimization

Yasumasa Suenaga suenaga at oss.nttdata.com
Mon Aug 3 05:55:51 UTC 2020


Hi all,

Please review this change:

   JBS: https://bugs.openjdk.java.net/browse/JDK-8250930
   webrev: http://cr.openjdk.java.net/~ysuenaga/JDK-8250930/webrev.00/

Following tests which were compiled by GCC 10.2 failed.

  - vmTestbase/nsk/jdi/ThreadReference/forceEarlyReturn/forceEarlyReturn004/forceEarlyReturn004.java
  - vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn002/forceEarlyReturn002.java

They have native module, and they are commented as below:

```
    // execute infinite loop to be sure that thread in native method
    while (always_true)
    {
        // Need some dummy code so the optimizer does not remove this loop.
        dummy_counter = dummy_counter < 1000 ? 0 : dummy_counter + 1;
    }
    // The optimizer can be surprisingly clever.
    // Use dummy_counter so it can never be optimized out.
    // This statement will always return 0.
    return dummy_counter >= 0 ? 0 : 1;
```

C compiler maybe eliminate this loop. We should not consider compiler optimization at this point with other solution.


Thanks,

Yasumasa


More information about the serviceability-dev mailing list