📄 20020607-1.c
字号:
/* 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_numnum_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;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -