modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/pr48641.c (about)

     1  /* { dg-options "-O -fno-tree-ccp -fno-tree-copy-prop" } */
     2  #define CSF __builtin_copysignf
     3  #define CSD __builtin_copysign
     4  #define CSL __builtin_copysignl
     5  #define MODFF __builtin_modff
     6  #define MODFD __builtin_modf
     7  #define MODFL __builtin_modfl
     8  
     9  extern void link_error (void);
    10  
    11  void
    12  foo (void)
    13  {
    14    float iptrf;
    15    double iptr;
    16    long double iptrl;
    17    long long iptrll;
    18    if ((CSF (1.0F, MODFF (0x1p10F + 0.5f, &iptrf)) != CSF (1.0F, 0.5f))
    19        || (CSF (1.0F, iptrf) != 0x1p10f))
    20      link_error ();
    21    if (MODFD (0x1p10F + 0.5, &iptr) != 0.5
    22        || (CSD (1.0, MODFD (0x1p10F + 0.5, &iptr)) != CSD (1.0, 0.5))
    23        || (CSD (1.0, iptr) != CSD (1.0, 0x1p10)))
    24      link_error ();
    25    if (MODFL (0x1p10F + 0.5l, &iptrl) != 0.5l
    26        || (CSL (1.0L, MODFL (0x1p10F + 0.5l, &iptrl)) != CSL (1.0L, 0.5l))
    27        || (CSL (1.0L, iptrl) != CSL (1.0L, 0x1p10l)))
    28      link_error ();
    29    if ((CSF (1.0F, (MODFF (0x1p10F + 0x1p-10f, &iptrf)))
    30         != CSF (1.0F, 0x1p-10f))
    31        || (CSF (1.0F, iptrf) != CSF (1.0F, 0x1p10f)))
    32      link_error ();
    33    if (MODFD (0x1p10F + 0x1p-10, &iptr) != 0x1p-10
    34        || (CSD (1.0, (MODFD (0x1p10F + 0x1p-10, &iptr)))
    35  	  != CSD (1.0, 0x1p-10)) || (CSD (1.0, iptr) != CSD (1.0, 0x1p10)))
    36      link_error ();
    37    if (MODFL (0x1p10F + 0x1p-10l, &iptrl) != 0x1p-10l
    38        || (CSL (1.0L, (MODFL (0x1p10F + 0x1p-10l, &iptrl)))
    39  	  != CSL (1.0L, 0x1p-10l))
    40        || (CSL (1.0L, iptrl) != CSL (1.0L, 0x1p10l)))
    41      link_error ();
    42    if ((CSF (1.0F, (MODFF (12345678L / 17.0f, &iptrf)))
    43         != CSF (1.0F, (-726216L + 12345678L / 17.0f)))
    44        || (CSF (1.0F, iptrf) != CSF (1.0F, 726216.0f)))
    45      link_error ();
    46    if (MODFD (12345678L / 17.0, &iptr) != -726216L + 12345678L / 17.0
    47        || (CSD (1.0, (MODFD (12345678L / 17.0, &iptr)))
    48  	  != CSD (1.0, (-726216L + 12345678L / 17.0)))
    49        || (CSD (1.0, iptr) != CSD (1.0, 726216.0)))
    50      link_error ();
    51    if ((CSL (1.0L, (MODFL (12345678L / 17.0l, &iptrl)))
    52         != CSL (1.0L, (-726216L + 12345678L / 17.0l)))
    53        || (CSL (1.0L, iptrl) != CSL (1.0L, 726216.0l)))
    54      link_error ();
    55    if (MODFF (555.555f, &iptrf) != -555 + 555.555f
    56        || (CSF (1.0F, iptrf) != CSF (1.0F, 555.0f)))
    57      link_error ();
    58    if (MODFD (555.555, &iptr) != -555 + 555.555
    59        || (CSD (1.0, (MODFD (555.555, &iptr))) != CSD (1.0, (-555 + 555.555)))
    60        || (CSD (1.0, iptr) != CSD (1.0, 555.0)))
    61      link_error ();
    62    if (MODFL (555.555l, &iptrl) != -555 + 555.555l
    63        || (CSL (1.0L, (MODFL (555.555l, &iptrl)))
    64  	  != CSL (1.0L, (-555 + 555.555l)))
    65        || (CSL (1.0L, iptrl) != CSL (1.0L, 555.0l)))
    66      link_error ();
    67    if (MODFF (5000 / 11.0f, &iptrf) != -454 + 5000 / 11.0f
    68        || (CSF (1.0F, (MODFF (5000 / 11.0f, &iptrf)))
    69  	  != CSF (1.0F, (-454 + 5000 / 11.0f)))
    70        || (CSF (1.0F, iptrf) != CSF (1.0F, 454.0f)))
    71      link_error ();
    72    if (MODFD (5000 / 11.0, &iptr) != -454 + 5000 / 11.0
    73        || (CSD (1.0, (MODFD (5000 / 11.0, &iptr)))
    74  	  != CSD (1.0, (-454 + 5000 / 11.0)))
    75        || (CSD (1.0, iptr) != CSD (1.0, 454.0)))
    76      link_error ();
    77    if ((CSL (1.0L, (MODFL (5000 / 11.0l, &iptrl)))
    78         != CSL (1.0L, (-454 + 5000 / 11.0l)))
    79        || (CSL (1.0L, iptrl) != CSL (1.0L, 454.0l)))
    80      link_error ();
    81    if ((CSF (1.0F, (MODFF (1000 / 7.0f, &iptrf)))
    82         != CSF (1.0F, (-142 + 1000 / 7.0f)))
    83        || (CSF (1.0F, iptrf) != CSF (1.0F, 142.0f)))
    84      link_error ();
    85    if ((CSD (1.0, (MODFD (1000 / 7.0, &iptr)))
    86         != CSD (1.0, (-142 + 1000 / 7.0)))
    87        || (CSD (1.0, iptr) != CSD (1.0, 142.0)))
    88      link_error ();
    89    if ((CSL (1.0L, (MODFL (1000 / 7.0l, &iptrl)))
    90         != CSL (1.0L, (-142 + 1000 / 7.0l)))
    91        || (CSL (1.0L, iptrl) != CSL (1.0L, 142.0l)))
    92      link_error ();
    93    if (MODFF (123 / 7.0f, &iptrf) != -17 + 123 / 7.0f
    94        || (CSF (1.0F, iptrf) != CSF (1.0F, 17.0f)))
    95      link_error ();
    96    if (MODFD (123 / 7.0, &iptr) != -17 + 123 / 7.0
    97        || (CSD (1.0, iptr) != CSD (1.0, 17.0)))
    98      link_error ();
    99    if ((CSL (1.0L, (MODFL (123 / 7.0l, &iptrl)))
   100         != CSL (1.0L, (-17 + 123 / 7.0l)))
   101        || (CSL (1.0L, iptrl) != CSL (1.0L, 17.0l)))
   102      link_error ();
   103    if ((CSF (1.0F, (MODFF (117 / 7.0f, &iptrf)))
   104         != CSF (1.0F, (-16 + 117 / 7.0f)))
   105        || (CSF (1.0F, iptrf) != CSF (1.0F, 16.0f)))
   106      link_error ();
   107    if ((CSD (1.0, (MODFD (117 / 7.0, &iptr))) != CSD (1.0, (-16 + 117 / 7.0)))
   108        || (CSD (1.0, iptr) != CSD (1.0, 16.0)))
   109      link_error ();
   110    if (MODFL (117 / 7.0l, &iptrl) != -16 + 117 / 7.0l
   111        || (CSL (1.0L, iptrl) != CSL (1.0L, 16.0l)))
   112      link_error ();
   113    if (MODFF (5.5f, &iptrf) != 0.5f || (CSF (1.0F, iptrf) != CSF (1.0F, 5.0f)))
   114      link_error ();
   115    if (MODFD (5.5, &iptr) != 0.5 || (CSD (1.0, iptr) != CSD (1.0, 5.0)))
   116      link_error ();
   117    if (MODFL (5.5l, &iptrl) != 0.5l || (CSL (1.0L, iptrl) != CSL (1.0L, 5.0l)))
   118      link_error ();
   119    if ((CSF (1.0F, (MODFF (1.5f, &iptrf))) != CSF (1.0F, 0.5f))
   120        || (CSF (1.0F, iptrf) != 1.0f))
   121      link_error ();
   122    if ((CSD (1.0, (MODFD (1.5, &iptr))) != CSD (1.0, 0.5))
   123        || (CSD (1.0, iptr) != 1.0))
   124      link_error ();
   125    if (MODFL (1.5l, &iptrl) != iptrl != 1.0l || (CSL (1.0L, iptrl) != 1.0l))
   126      link_error ();
   127    if (MODFF (4 / 3.0f, &iptrf) != -1 + 4 / 3.0f
   128        || (CSF (1.0F, (MODFF (4 / 3.0f, &iptrf)))
   129  	  != CSF (1.0F, (-1 + 4 / 3.0f))) || (CSF (1.0F, iptrf) != (1.0F)))
   130      link_error ();
   131    if (MODFD (4 / 3.0, &iptr) != -1 + 4 / 3.0 || (CSD (1.0, iptr) != 1.0))
   132      link_error ();
   133    if (MODFL (4 / 3.0l, &iptrl) != iptrl != 1.0l
   134        || (CSL (1.0L, iptrl) != 1.0l))
   135      link_error ();
   136    if ((((MODFF (1.0f, &iptrf)))) || (CSF (1.0F, iptrf) != 1.0f))
   137      link_error ();
   138    if ((((MODFD (1.0, &iptr))) != 0.0) || (CSD (1.0, iptr) != 1.0))
   139      link_error ();
   140    if ((((MODFL (1.0l, &iptrl))) != 0.0l) || (CSL (1.0L, iptrl) != 1.0l))
   141      link_error ();
   142    if (MODFF (0.5f, &iptrf) != 0.5f || (CSF (1.0F, iptrf) != CSF (1.0F, 0.0f)))
   143      link_error ();
   144    if (MODFD (0.5, &iptr) != 0.5 || (CSD (1.0, iptr) != CSD (1.0, 0.0)))
   145      link_error ();
   146    if ((CSL (1.0L, (MODFL (0.5l, &iptrl))) != CSL (1.0L, 0.5l))
   147        || (CSL (1.0L, iptrl) != CSL (1.0L, 0.0l)))
   148      link_error ();
   149    if (MODFF (4 / 9.0f, &iptrf) != 4 / 9.0f
   150        != (CSF (1.0F, (MODFF (4 / 9.0f, &iptrf))) != CSF (1.0F, (4 / 9.0f)))
   151        || (CSF (1.0F, iptrf) != CSF (1.0F, 0.0f)))
   152      link_error ();
   153    if (MODFD (4 / 9.0, &iptr) != 4 / 9.0
   154        || (CSD (1.0, iptr) != CSD (1.0, 0.0)))
   155      link_error ();
   156    if (MODFL (4 / 9.0l, &iptrl) != 4 / 9.0l
   157        || (CSL (1.0L, iptrl) != CSL (1.0L, 0.0l)))
   158      link_error ();
   159    if (MODFF (1 / 3.0f, &iptrf) != 1 / 3.0f
   160        || (CSF (1.0F, iptrf) != CSF (1.0F, 0.0f)))
   161      link_error ();
   162    if (MODFD (1 / 3.0, &iptr) != 1 / 3.0
   163        || (CSD (1.0, iptr) != CSD (1.0, 0.0)))
   164      link_error ();
   165    if ((CSL (1.0L, (MODFL (1 / 3.0l, &iptrl))) != CSL (1.0L, (1 / 3.0l)))
   166        || (CSL (1.0L, iptrl) != CSL (1.0L, 0.0l)))
   167      link_error ();
   168    if ((CSF (1.0F, (MODFF (1 / 9.0f, &iptrf))) != CSF (1.0F, (1 / 9.0f)))
   169        || (CSF (1.0F, iptrf) != CSF (1.0F, 0.0f)))
   170      link_error ();
   171    if (MODFD (1 / 9.0, &iptr) != 1 / 9.0
   172        || (CSD (1.0, iptr) != CSD (1.0, 0.0)))
   173      link_error ();
   174    if ((CSL (1.0L, (MODFL (1 / 9.0l, &iptrl))) != CSL (1.0L, (1 / 9.0l)))
   175        || (CSL (1.0L, iptrl) != CSL (1.0L, 0.0l)))
   176      link_error ();
   177    if ((((MODFF (0.0f, &iptrf)))) || (CSF (1.0F, iptrf) != CSF (1.0F, 0.0f)))
   178      link_error ();
   179    if ((((MODFD (0.0, &iptr)))) || (CSD (1.0, iptr) != CSD (1.0, 0.0)))
   180      link_error ();
   181    if ((((MODFL (0.0l, &iptrl))) != 0.0l)
   182        || (CSL (1.0L, iptrl) != CSL (1.0L, 0.0l)))
   183      link_error ();
   184    if ((((MODFF (-0.0f, &iptrf)))) || (CSF (1.0F, iptrf) != CSF (1.0F, -0.0f)))
   185      link_error ();
   186    if ((((MODFD (-0.0, &iptr)))) || (CSD (1.0, iptr) != CSD (1.0, -0.0)))
   187      link_error ();
   188    if ((CSL (1.0L, (MODFL (-0.0l, &iptrl))) != CSL (1.0L, -0.0l))
   189        || (CSL (1.0L, iptrl) != CSL (1.0L, -0.0l)))
   190      link_error ();
   191    if (MODFF (-1 / 9.0f, &iptrf) != -1 / 9.0f
   192        || (CSF (1.0F, (MODFF (-1 / 9.0f, &iptrf))) != CSF (1.0F, (-1 / 9.0f)))
   193        || (CSF (1.0F, iptrf) != CSF (1.0F, -0.0f)))
   194      link_error ();
   195    if (MODFD (-1 / 9.0, &iptr) != -1 / 9.0
   196        || (CSD (1.0, iptr) != CSD (1.0, -0.0)))
   197      link_error ();
   198    if ((CSL (1.0L, (MODFL (-1 / 9.0l, &iptrl))) != CSL (1.0L, (-1 / 9.0l)))
   199        || (CSL (1.0L, iptrl) != CSL (1.0L, -0.0l)))
   200      link_error ();
   201    if ((CSF (1.0F, (MODFF (-1 / 3.0f, &iptrf))) != CSF (1.0F, (-1 / 3.0f)))
   202        || (CSF (1.0F, iptrf) != CSF (1.0F, -0.0f)))
   203      link_error ();
   204    if (MODFD (-1 / 3.0, &iptr) != -1 / 3.0
   205        || (CSD (1.0, iptr) != CSD (1.0, -0.0)))
   206      link_error ();
   207    if ((CSL (1.0L, (MODFL (-1 / 3.0l, &iptrl))) != CSL (1.0L, (-1 / 3.0l)))
   208        || (CSL (1.0L, iptrl) != CSL (1.0L, -0.0l)))
   209      link_error ();
   210    if (MODFF (-4 / 9.0f, &iptrf) != -4 / 9.0f
   211        || (CSF (1.0F, (MODFF (-4 / 9.0f, &iptrf))) != CSF (1.0F, (-4 / 9.0f)))
   212        || (CSF (1.0F, iptrf) != CSF (1.0F, -0.0f)))
   213      link_error ();
   214    if (MODFD (-4 / 9.0, &iptr) != -4 / 9.0
   215        || (CSD (1.0, iptr) != CSD (1.0, -0.0)))
   216      link_error ();
   217    if (MODFL (-4 / 9.0l, &iptrl) != -4 / 9.0l
   218        || (CSL (1.0L, (MODFL (-4 / 9.0l, &iptrl))) != CSL (1.0L, (-4 / 9.0l)))
   219        || (CSL (1.0L, iptrl) != CSL (1.0L, -0.0l)))
   220      link_error ();
   221    if (MODFF (-0.5f, &iptrf) != -0.5f
   222        || (CSF (1.0F, iptrf) != CSF (1.0F, -0.0f)))
   223      link_error ();
   224    if (MODFD (-0.5, &iptr) != -0.5
   225        != (CSD (1.0, (MODFD (-0.5, &iptr))) != CSD (1.0, -0.5))
   226        || (CSD (1.0, iptr) != CSD (1.0, -0.0)))
   227      (MODFL (-0.5l, (long double *) &iptrll));
   228    if ((((MODFF (-1.0f, &iptrf)))) || (CSF (1.0F, iptrf) != -1.0f))
   229      link_error ();
   230    if ((((MODFD (-1.0, &iptr))) != -0.0) || (CSD (1.0, iptr) != -1.0))
   231      link_error ();
   232    if ((((MODFL (-1.0l, &iptrl)))) || (CSL (1.0L, iptrl) != -1.0l))
   233      link_error ();
   234    if ((CSF (1.0F, (MODFF (-4 / 3.0f, &iptrf))) != CSF (1.0F, (1 - 4 / 3.0f)))
   235        || (CSF (1.0F, iptrf) != -1.0f))
   236      link_error ();
   237    if (MODFD (-4 / 3.0, &iptr) != 1 - 4 / 3.0 || (CSD (1.0, iptr) != -1.0))
   238      link_error ();
   239    if (MODFL (-4 / 3.0l, &iptrl) != 1 - 4 / 3.0l
   240        || (CSL (1.0L, (MODFL (-4 / 3.0l, &iptrl)))
   241  	  != CSL (1.0L, (1 - 4 / 3.0l))) || (CSL (1.0L, iptrl) != -1.0l))
   242      link_error ();
   243    if ((CSF (1.0F, (MODFF (-1.5f, &iptrf))) != CSF (1.0F, -0.5f))
   244        || (CSF (1.0F, iptrf) != -1.0f))
   245      link_error ();
   246    if ((CSD (1.0, (MODFD (-1.5, &iptr))) != CSD (1.0, -0.5))
   247        || (CSD (1.0, iptr) != -1.0))
   248      link_error ();
   249  }