There is a bug in the inlining of Class.getModifiers. The result type of Class.getModifiers is labeled as a "boolean" to the optimizer instead of "int". An inlined isFinal call masks with 16 - which against a boolean always returns a 0 (masking against an int produces the obvious extract instructions). Bug can be reproduced by running JCK test "javasoft.sqe.tests.api.java.lang.Class.GetModifiersTests -TestCaseID ALL"
using C2 -Xcomp. A suggested fix is provided.
###@###.### 2005-07-15 00:08:19 GMT