diff options
Diffstat (limited to 'libjava/testsuite/libjava.lang/err3.java')
-rw-r--r-- | libjava/testsuite/libjava.lang/err3.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.lang/err3.java b/libjava/testsuite/libjava.lang/err3.java new file mode 100644 index 0000000..17535b8 --- /dev/null +++ b/libjava/testsuite/libjava.lang/err3.java @@ -0,0 +1,34 @@ +/*--------------------------------------------------------------------------*/ +/* File name : err3.java */ +/* : */ +/* Cause : Evaluation sequence of the formula which used */ +/* : the substitution operator is not performed correctly. */ +/* : */ +/* Message : NG1:[27]-->[9] */ +/* : NG2:[27]-->[9] */ +/* : */ +/* Note : JLS 15.6 Evaluation Order (p305) */ +/* S15.6.1 Evaluate Left-Hand Operand First */ +/* : A formula should be evaluated to 9*3 instead of 3*3. */ +/*--------------------------------------------------------------------------*/ + +public class err3 { + public static void main(String[] args) { + int x = 9; + x *= (x = 3); + if ( x == 27 ) { + System.out.println("OK1"); + } else { + System.out.println("NG1:[27]-->["+x+"]"); + } + + int y = 9; + y = y * (y = 3); + if ( y == 27 ) { + System.out.println("OK2"); + } else { + System.out.println("NG2:[27]-->["+y+"]"); + } + } +} + |