Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/20020607-1.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* PR middle-end/6950 gcc 3.0.4 mistakenly set lhs.low to 0 at the beginning of the num_eq expansion; it should use a temporary. /* { dg-do run } */ typedef struct cpp_num cpp_num; struct cpp_num { long high; long low; char overflow; }; #define num_eq(num1, num2) (num1.low == num2.low && num1.high == num2.high) static cpp_num num_equality_op (lhs, rhs) cpp_num lhs, rhs; { lhs.low = num_eq (lhs, rhs); lhs.high = 0; lhs.overflow = 0; return lhs; } int main() { cpp_num a = { 1, 2 }; cpp_num b = { 3, 4 }; cpp_num result = num_equality_op (a, b); if (result.low) return 1; result = num_equality_op (a, a); if (!result.low) return 2; return 0; }