⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pr30315.c

📁 用于进行gcc测试
💻 C
字号:
/* { dg-do compile } *//* { dg-options "-O2" } *//* { dg-final { scan-assembler-times "cmp" 4 } } */extern void abort (void);int c;#define PLUSCC1(T, t, C)	\T pluscc##t##C (T a, T b)	\{	\  T sum = a + b;	\  if (sum < C)		\    abort ();		\  return sum;		\}#define PLUSCC(T, t) PLUSCC1(T, t, a) PLUSCC1(T, t, b)#define INCCC1(T, t, C)	\T inccc##t##C (T a, T b)	\{	\  T sum = a + b;	\  if (sum < C)		\    c ++;		\  return sum;		\}#define INCCC(T, t) INCCC1(T, t, a) INCCC1(T, t, b)#define PLUSCCONLY1(T, t, C)	\void pluscconly##t##C (T a, T b)	\{	\  T sum = a + b;	\  if (sum < C)		\    abort ();		\}#define PLUSCCONLY(T, t) PLUSCCONLY1(T, t, a) PLUSCCONLY1(T, t, b)#define MINUSCC(T, t)	\T minuscc##t (T a, T b)	\{	\  T difference = a - b;	\  if (difference > a)	\    abort ();		\  return difference;	\}#define DECCC(T, t)	\T deccc##t (T a, T b)	\{	\  T difference = a - b;	\  if (difference > a)	\    c --;		\  return difference;	\}#define MINUSCCONLY(T, t)	\void minuscconly##t (T a, T b)	\{	\  T difference = a - b;	\  if (difference > a)	\    abort ();		\}#define TEST(T, t)	\  PLUSCC(T, t)		\  PLUSCCONLY(T, t)	\  INCCC(T, t)		\  MINUSCC(T, t)		\  MINUSCCONLY(T, t)	\  DECCC(T, t)TEST (unsigned long,  l)TEST (unsigned int,   i)TEST (unsigned short, s) TEST (unsigned char,  c)#define PLUSCCZEXT(C)	\unsigned long pluscczext##C (unsigned int a, unsigned int b)	\{	\  unsigned int sum = a + b;	\  if (sum < C)		\    abort ();		\  return sum;		\}PLUSCCZEXT(a)PLUSCCZEXT(b)#define MINUSCCZEXT	\unsigned long minuscczext (unsigned int a, unsigned int b)	\{	\  unsigned int difference = a - b;	\  if (difference > a)		\    abort ();			\  return difference;		\}MINUSCCZEXT

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -