177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// Test assignment operations
277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaovoid testAssignment() {
477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    int a = 2;
577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a *= 5;
677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("2 *= 5  %d\n", a);
777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a = 20;
877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a /= 5;
977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("20 /= 5  %d\n", a);
1077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a = 17;
1177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a %= 5;
1277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("17 %%= 5  %d\n", a);
1377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a = 17;
1477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a += 5;
1577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("17 += 5  %d\n", a);
1677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a = 17;
1777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a-=5;
1877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("17 -= 5  %d\n", a);
1977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a = 17;
2077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a<<=1;
2177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("17<<= 1  %d\n", a);
2277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a = 17;
2377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a>>=1;
2477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("17>>= 1  %d\n", a);
2577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a = 17;
2677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a&=1;
2777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("17&= 1  %d\n", a);
2877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a = 17;
2977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a^=1;
3077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("17^= 1  %d\n", a);
3177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a = 16;
3277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a^=1;
3377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("16|= 1  %d\n", a);
3477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
3577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
3677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint a;
3777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
3877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint* f() {
3977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("f()\n");
4077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    return &a;
4177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
4277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
4377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaovoid testEval() {
4477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a = 0;
4577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("*f() = *f() + 10;\n");
4677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    *f() = *f() + 10;
4777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("a = %d\n", a);
4877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
4977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
5077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaovoid testOpEval() {
5177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    a = 0;
5277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("*f() += 10;\n");
5377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    *f() += 10;
5477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    printf("a = %d\n", a);
5577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
5677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
5777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint main() {
5877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    testAssignment();
5977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    testEval();
6077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    testOpEval();
6177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    return 0;
6277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
63