Community
Participate
Working Groups
Build 3.2M3 Code generated for: public class X { public float f0; public static void main(String[] args) { long l11 = -26; X x = new X(); System.out.println( (((l11 < x.f0) || true) != false)); } } requires the 'f0' field to be accessed (and popped) to ensure proper null check on x.f0. But following code does not need the field access to be generated in bytecode: public class X { public float f0; public void main(String[] args) { long l11 = -26; System.out.println( (((l11 < f0) || true) != false)); } } or public class X { public static float f0; public static void main(String[] args) { long l11 = -26; System.out.println( (((l11 < f0) || true) != false)); } }
Added BooleanTest#test031. Boolean tests test020,021,022,025,026,027 & 028 are also reflecting the fix.
Other scenario involving qualified name. public class X { static float f0; public static void main(String[] args) { System.out.println((X.f0 > 0 || true) == false); } }
Tuned SingleNameReference, FieldReference and QualifiedNameReference. Fixed
Verified for 3.2 M4 using build I20051213-0010