builtins-55.c

来自「用于进行gcc测试」· C语言 代码 · 共 87 行

C
87
字号
/* { dg-do link } *//* { dg-options "-O2 -ffast-math" } *//* { dg-add-options c99_runtime } */#include "builtins-config.h"void link_error (void);extern long lround(double);extern long lrint(double);extern long long llround(double);extern long long llrint(double);extern long lroundf(float);extern long lrintf(float);extern long long llroundf(float);extern long long llrintf(float);extern long lroundl(long double);extern long lrintl(long double);extern long long llroundl(long double);extern long long llrintl(long double);void test(double x){#ifdef HAVE_C99_RUNTIME  if (sizeof(long) != sizeof(long long))    return;  if (__builtin_lceil(x) != __builtin_llceil(x))    link_error();  if (__builtin_lfloor(x) != __builtin_llfloor(x))    link_error();  if (lround(x) != llround(x))    link_error();  if (lrint(x) != llrint(x))    link_error();#endif}void testf(float x){#ifdef HAVE_C99_RUNTIME  if (sizeof(long) != sizeof(long long))    return;  if (__builtin_lceilf(x) != __builtin_llceilf(x))    link_error();  if (__builtin_lfloorf(x) != __builtin_llfloorf(x))    link_error();  if (lroundf(x) != llroundf(x))    link_error();  if (lrintf(x) != llrintf(x))    link_error();#endif}void testl(long double x){#ifdef HAVE_C99_RUNTIME  if (sizeof(long) != sizeof(long long))    return;  if (__builtin_lceill(x) != __builtin_llceill(x))    link_error();  if (__builtin_lfloorl(x) != __builtin_llfloorl(x))    link_error();  if (lroundl(x) != llroundl(x))    link_error();  if (lrintl(x) != llrintl(x))    link_error();#endif}int main(){  test(0.0);  testf(0.0);  testl(0.0);  return 0;}

⌨️ 快捷键说明

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