// PR c++/7503 | |
// { dg-do run } | |
// { dg-options "-O2" } | |
extern "C" void abort(); | |
void test1a() | |
{ | |
int A = 4; | |
int B = 4; | |
(A > B ? A : B) = 1; | |
if (A != 4 || B != 1) | |
abort (); | |
} | |
void test1b() | |
{ | |
int A = 3; | |
int B = 5; | |
(A > B ? A : B) = 1; | |
if (A != 3 || B != 1) | |
abort (); | |
} | |
void test1c() | |
{ | |
int A = 5; | |
int B = 3; | |
(A > B ? A : B) = 1; | |
if (A != 1 || B != 3) | |
abort (); | |
} | |
void test2a() | |
{ | |
int A = 4; | |
int B = 4; | |
(A >= B ? A : B) = 1; | |
if (A != 1 || B != 4) | |
abort (); | |
} | |
void test2b() | |
{ | |
int A = 3; | |
int B = 5; | |
(A >= B ? A : B) = 1; | |
if (A != 3 || B != 1) | |
abort (); | |
} | |
void test2c() | |
{ | |
int A = 5; | |
int B = 3; | |
(A >= B ? A : B) = 1; | |
if (A != 1 || B != 3) | |
abort (); | |
} | |
void test3a() | |
{ | |
int A = 4; | |
int B = 4; | |
(A < B ? A : B) = 1; | |
if (A != 4 || B != 1) | |
abort (); | |
} | |
void test3b() | |
{ | |
int A = 3; | |
int B = 5; | |
(A < B ? A : B) = 1; | |
if (A != 1 || B != 5) | |
abort (); | |
} | |
void test3c() | |
{ | |
int A = 5; | |
int B = 3; | |
(A < B ? A : B) = 1; | |
if (A != 5 || B != 1) | |
abort (); | |
} | |
void test4a() | |
{ | |
int A = 4; | |
int B = 4; | |
(A <= B ? A : B) = 1; | |
if (A != 1 || B != 4) | |
abort (); | |
} | |
void test4b() | |
{ | |
int A = 3; | |
int B = 5; | |
(A <= B ? A : B) = 1; | |
if (A != 1 || B != 5) | |
abort (); | |
} | |
void test4c() | |
{ | |
int A = 5; | |
int B = 3; | |
(A <= B ? A : B) = 1; | |
if (A != 5 || B != 1) | |
abort (); | |
} | |
int main() | |
{ | |
test1a(); | |
test1b(); | |
test1c(); | |
test2a(); | |
test2b(); | |
test2c(); | |
test3a(); | |
test3b(); | |
test3c(); | |
test4a(); | |
test4b(); | |
test4c(); | |
return 0; | |
} | |