Changeset 80d99aa in rtems


Ignore:
Timestamp:
Dec 1, 2014, 7:20:55 AM (5 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, master
Children:
9ab1558f
Parents:
dd309b1
Message:

libtests/complex,math: Prevent optimizations

For constant arguments GCC calculates the values of the math library
functions at compile-time.

close #1741

Location:
testsuites/libtests
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • testsuites/libtests/complex/docomplex.h

    rdd309b1 r80d99aa  
    2626extern void FUNC(docomplex) (void);
    2727
     28volatile complex FTYPE ca, cb;
     29
    2830void
    2931FUNC(docomplex) (void)
    3032{
    3133#ifndef PROVIDE_EMPTY_FUNC
    32   complex FTYPE ca, cb, cc;
     34  complex FTYPE cc;
    3335  FTYPE f1;
    3436
  • testsuites/libtests/math/domath.h

    rdd309b1 r80d99aa  
    3434extern void FUNC(domath) (void);
    3535
     36volatile int ia;
     37
     38volatile FTYPE fa;
     39
     40volatile FTYPE fb;
     41
     42volatile FTYPE fc;
     43
    3644void
    3745FUNC(domath) (void)
     
    4351  int i1;
    4452
    45   f1 = FUNC(acos) (0.0);
     53  fa = 0.0;
     54  f1 = FUNC(acos) (fa);
    4655  fprintf( stdout, STR(acos) "          : " PRI "\n", f1);
    4756
    48   f1 = FUNC(acosh) (0.0);
     57  fa = 0.0;
     58  f1 = FUNC(acosh) (fa);
    4959  fprintf( stdout, STR(acosh) "         : " PRI "\n", f1);
    5060
    51   f1 = FUNC(asin) (1.0);
     61  fa = 1.0;
     62  f1 = FUNC(asin) (fa);
    5263  fprintf( stdout, STR(asin) "          : " PRI "\n", f1);
    5364
    54   f1 = FUNC(asinh) (1.0);
     65  fa = 1.0;
     66  f1 = FUNC(asinh) (fa);
    5567  fprintf( stdout, STR(asinh) "         : " PRI "\n", f1);
    5668
    57   f1 = FUNC(atan) (M_PI_4);
     69  fa = M_PI_4;
     70  f1 = FUNC(atan) (fa);
    5871  fprintf( stdout, STR(atan) "          : " PRI "\n", f1);
    5972
    60   f1 = FUNC(atan2) (2.3, 2.3);
     73  fa = 2.3;
     74  fb = 2.3;
     75  f1 = FUNC(atan2) (fa, fb);
    6176  fprintf( stdout, STR(atan2) "         : " PRI "\n", f1);
    6277
    63   f1 = FUNC(atanh) (1.0);
     78  fa = 1.0;
     79  f1 = FUNC(atanh) (fa);
    6480  fprintf( stdout, STR(atanh) "         : " PRI "\n", f1);
    6581
    66   f1 = FUNC(cbrt) (27.0);
     82  fa = 27.0;
     83  f1 = FUNC(cbrt) (fa);
    6784  fprintf( stdout, STR(cbrt) "          : " PRI "\n", f1);
    6885
    69   f1 = FUNC(ceil) (3.5);
     86  fa = 3.5;
     87  f1 = FUNC(ceil) (fa);
    7088  fprintf( stdout, STR(ceil) "          : " PRI "\n", f1);
    7189
    72   f1 = FUNC(copysign) (3.5, -2.5);
     90  fa = 3.5;
     91  fb = -2.5;
     92  f1 = FUNC(copysign) (fa, fb);
    7393  fprintf( stdout, STR(copysign) "      : " PRI "\n", f1);
    7494
    75   f1 = FUNC(cos) (M_PI_2);
     95  fa = M_PI_2;
     96  f1 = FUNC(cos) (fa);
    7697  fprintf( stdout, STR(cos) "           : " PRI "\n", f1);
    7798
    78   f1 = FUNC(cosh) (M_PI_2);
     99  fa = M_PI_2;
     100  f1 = FUNC(cosh) (fa);
    79101  fprintf( stdout, STR(cosh) "          : " PRI "\n", f1);
    80102
    81   f1 = FUNC(erf) (42.0);
     103  fa = 42.0;
     104  f1 = FUNC(erf) (fa);
    82105  fprintf( stdout, STR(erf) "           : " PRI "\n", f1);
    83106
    84   f1 = FUNC(erfc) (42.0);
     107  fa = 42.0;
     108  f1 = FUNC(erfc) (fa);
    85109  fprintf( stdout, STR(erfc) "          : " PRI "\n", f1);
    86110
    87   f1 = FUNC(exp) (0.42);
     111  fa = 0.42;
     112  f1 = FUNC(exp) (fa);
    88113  fprintf( stdout, STR(exp) "           : " PRI "\n", f1);
    89114
    90   f1 = FUNC(exp2) (0.42);
     115  fa = 0.42;
     116  f1 = FUNC(exp2) (fa);
    91117  fprintf( stdout, STR(exp2) "          : " PRI "\n", f1);
    92118
    93   f1 = FUNC(expm1) (0.00042);
     119  fa = 0.00042;
     120  f1 = FUNC(expm1) (fa);
    94121  fprintf( stdout, STR(expm1) "         : " PRI "\n", f1);
    95122
    96   f1 = FUNC(fabs) (-1.123);
     123  fa = -1.123;
     124  f1 = FUNC(fabs) (fa);
    97125  fprintf( stdout, STR(fabs) "          : " PRI "\n", f1);
    98126
    99   f1 = FUNC(fdim) (1.123, 2.123);
     127  fa = 1.123;
     128  fb = 1.123;
     129  f1 = FUNC(fdim) (fa, fb);
    100130  fprintf( stdout, STR(fdim) "          : " PRI "\n", f1);
    101131
    102   f1 = FUNC(floor) (0.5);
     132  fa = 0.5;
     133  f1 = FUNC(floor) (fa);
    103134  fprintf( stdout, STR(floor) "         : " PRI "\n", f1);
    104   f1 = FUNC(floor) (-0.5);
     135  fa = -0.5;
     136  f1 = FUNC(floor) (fa);
    105137  fprintf( stdout, STR(floor) "         : " PRI "\n", f1);
    106138
    107   f1 = FUNC(fma) (2.1, 2.2, 3.01);
     139  fa = 2.1;
     140  fb = 2.2;
     141  fc = 3.01;
     142  f1 = FUNC(fma) (fa, fb, fc);
    108143  fprintf( stdout, STR(fma) "           : " PRI "\n", f1);
    109144
    110   f1 = FUNC(fmax) (-0.42, 0.42);
     145  fa = -0.42;
     146  fb = 0.42;
     147  f1 = FUNC(fmax) (fa, fb);
    111148  fprintf( stdout, STR(fmax) "          : " PRI "\n", f1);
    112149
    113   f1 = FUNC(fmin) (-0.42, 0.42);
     150  fa = -0.42;
     151  fb = 0.42;
     152  f1 = FUNC(fmin) (fa, fb);
    114153  fprintf( stdout, STR(fmin) "          : " PRI "\n", f1);
    115154
    116   f1 = FUNC(fmod) (42.0, 3.0);
     155  fa = 42.0;
     156  fb = 3.0;
     157  f1 = FUNC(fmod) (fa, fb);
    117158  fprintf( stdout, STR(fmod) "          : " PRI "\n", f1);
    118159
    119160  /* no type-specific variant */
    120   i1 = fpclassify(1.0);
     161  fa = 1.0;
     162  i1 = fpclassify(fa);
    121163  fprintf( stdout, "fpclassify     : %d\n", i1);
    122164
    123   f1 = FUNC(frexp) (42.0, &i1);
     165  fa = 42.0;
     166  f1 = FUNC(frexp) (fa, &i1);
    124167  fprintf( stdout, STR(frexp) "         : " PRI "\n", f1);
    125168
    126   f1 = FUNC(hypot) (42.0, 42.0);
     169  fa = 42.0;
     170  fb = 42.0;
     171  f1 = FUNC(hypot) (fa, fb);
    127172  fprintf( stdout, STR(hypot) "         : " PRI "\n", f1);
    128173
    129   i1 = FUNC(ilogb) (42.0);
     174  fa = 42.0;
     175  i1 = FUNC(ilogb) (fa);
    130176  fprintf( stdout, STR(ilogb) "         : %d\n", i1);
    131177
    132178  /* no type-specific variant */
    133   i1 = isfinite(3.0);
     179  fa = 3.0;
     180  i1 = isfinite(fa);
    134181  fprintf( stdout, "isfinite       : %d\n", i1);
    135182
    136183  /* no type-specific variant */
    137   i1 = isgreater(3.0, 3.1);
     184  fa = 3.0;
     185  fb = 3.1;
     186  i1 = isgreater(fa, fb);
    138187  fprintf( stdout, "isgreater      : %d\n", i1);
    139188
    140189  /* no type-specific variant */
    141   i1 = isgreaterequal(3.0, 3.1);
     190  fa = 3.0;
     191  fb = 3.1;
     192  i1 = isgreaterequal(fa, fb);
    142193  fprintf( stdout, "isgreaterequal : %d\n", i1);
    143194
    144195  /* no type-specific variant */
    145   i1 = isinf(3.0);
     196  fa = 3.0;
     197  i1 = isinf(fa);
    146198  fprintf( stdout, "isinf          : %d\n", i1);
    147199
    148200  /* no type-specific variant */
    149   i1 = isless(3.0, 3.1);
     201  fa = 3.0;
     202  fb = 3.1;
     203  i1 = isless(fa, fb);
    150204  fprintf( stdout, "isless         : %d\n", i1);
    151205
    152206  /* no type-specific variant */
    153   i1 = islessequal(3.0, 3.1);
     207  fa = 3.0;
     208  fb = 3.1;
     209  i1 = islessequal(fa, fb);
    154210  fprintf( stdout, "islessequal    : %d\n", i1);
    155211
    156212  /* no type-specific variant */
    157   i1 = islessgreater(3.0, 3.1);
     213  fa = 3.0;
     214  fb = 3.1;
     215  i1 = islessgreater(fa, fb);
    158216  fprintf( stdout, "islessgreater  : %d\n", i1);
    159217
    160218  /* no type-specific variant */
    161   i1 = isnan(0.0);
     219  fa = 0.0;
     220  i1 = isnan(fa);
    162221  fprintf( stdout, "isnan          : %d\n", i1);
    163222
    164223  /* no type-specific variant */
    165   i1 = isnormal(3.0);
     224  fa = 3.0;
     225  i1 = isnormal(fa);
    166226  fprintf( stdout, "isnormal       : %d\n", i1);
    167227
    168228  /* no type-specific variant */
    169   f1 = isunordered(1.0, 2.0);
     229  fa = 1.0;
     230  fb = 2.0;
     231  f1 = isunordered(fa, fb);
    170232  fprintf( stdout, "isunordered    : %d\n", i1);
    171233
    172   f1 = FUNC(j0) (1.2);
     234  fa = 1.2;
     235  f1 = FUNC(j0) (fa);
    173236  fprintf( stdout, STR(j0) "            : " PRI "\n", f1);
    174237
    175   f1 = FUNC(j1) (1.2);
     238  fa = 1.2;
     239  f1 = FUNC(j1) (fa);
    176240  fprintf( stdout, STR(j1) "            : " PRI "\n", f1);
    177241
    178   f1 = FUNC(jn) (2,1.2);
     242  ia = 2;
     243  fa = 1.2;
     244  f1 = FUNC(jn) (ia, fa);
    179245  fprintf( stdout, STR(jn) "            : " PRI "\n", f1);
    180246
    181   f1 = FUNC(ldexp) (1.2,3);
     247  fa = 1.2;
     248  ia = 3;
     249  f1 = FUNC(ldexp) (fa, ia);
    182250  fprintf( stdout, STR(ldexp) "         : " PRI "\n", f1);
    183251
    184   f1 = FUNC(lgamma) (42.0);
     252  fa = 42.0;
     253  f1 = FUNC(lgamma) (fa);
    185254  fprintf( stdout, STR(lgamma) "        : " PRI "\n", f1);
    186255
    187   f1 = FUNC(llrint) (-0.5);
     256  fa = -0.5;
     257  f1 = FUNC(llrint) (fa);
    188258  fprintf( stdout, STR(llrint) "        : " PRI "\n", f1);
    189   f1 = FUNC(llrint) (0.5);
     259  fa = 0.5;
     260  f1 = FUNC(llrint) (fa);
    190261  fprintf( stdout, STR(llrint) "        : " PRI "\n", f1);
    191262
    192   f1 = FUNC(llround) (-0.5);
     263  fa = -0.5;
     264  f1 = FUNC(llround) (fa);
    193265  fprintf( stdout, STR(lround) "        : " PRI "\n", f1);
    194   f1 = FUNC(llround) (0.5);
     266  fa = 0.5;
     267  f1 = FUNC(llround) (fa);
    195268  fprintf( stdout, STR(lround) "        : " PRI "\n", f1);
    196269
    197   f1 = FUNC(log) (42.0);
     270  fa = 42.0;
     271  f1 = FUNC(log) (fa);
    198272  fprintf( stdout, STR(log) "           : " PRI "\n", f1);
    199273
    200   f1 = FUNC(log10) (42.0);
     274  fa = 42.0;
     275  f1 = FUNC(log10) (fa);
    201276  fprintf( stdout, STR(log10) "         : " PRI "\n", f1);
    202277
    203   f1 = FUNC(log1p) (42.0);
     278  fa = 42.0;
     279  f1 = FUNC(log1p) (fa);
    204280  fprintf( stdout, STR(log1p) "         : " PRI "\n", f1);
    205281
    206   f1 = FUNC(log2) (42.0);
     282  fa = 42.0;
     283  f1 = FUNC(log2) (fa);
    207284  fprintf( stdout, STR(log2) "          : " PRI "\n", f1);
    208285
    209   f1 = FUNC(logb) (42.0);
     286  fa = 42.0;
     287  f1 = FUNC(logb) (fa);
    210288  fprintf( stdout, STR(logb) "          : " PRI "\n", f1);
    211289
    212   f1 = FUNC(lrint) (-0.5);
     290  fa = -0.5;
     291  f1 = FUNC(lrint) (fa);
    213292  fprintf( stdout, STR(lrint) "         : " PRI "\n", f1);
    214   f1 = FUNC(lrint) (0.5);
     293  fa = 0.5;
     294  f1 = FUNC(lrint) (fa);
    215295  fprintf( stdout, STR(lrint) "         : " PRI "\n", f1);
    216296
    217   f1 = FUNC(lround) (-0.5);
     297  fa = -0.5;
     298  f1 = FUNC(lround) (fa);
    218299  fprintf( stdout, STR(lround) "        : " PRI "\n", f1);
    219   f1 = FUNC(lround) (0.5);
     300  fa = 0.5;
     301  f1 = FUNC(lround) (fa);
    220302  fprintf( stdout, STR(lround) "        : " PRI "\n", f1);
    221303
    222   f1 = FUNC(modf) (42.0,&f2);
     304  fa = 42.0;
     305  f1 = FUNC(modf) (fa, &f2);
    223306  fprintf( stdout, STR(lmodf) "         : " PRI "\n", f1);
    224307
     
    226309  fprintf( stdout, STR(nan) "           : " PRI "\n", f1);
    227310
    228   f1 = FUNC(nearbyint) (1.5);
     311  fa = 1.5;
     312  f1 = FUNC(nearbyint) (fa);
    229313  fprintf( stdout, STR(nearbyint) "     : " PRI "\n", f1);
    230314
    231   f1 = FUNC(nextafter) (1.5,2.0);
     315  fa = 1.5;
     316  fb = 2.0;
     317  f1 = FUNC(nextafter) (fa, fb);
    232318  fprintf( stdout, STR(nextafter) "     : " PRI "\n", f1);
    233319
    234   f1 = FUNC(pow) (3.01, 2.0);
     320  fa = 3.01;
     321  fb = 2.0;
     322  f1 = FUNC(pow) (fa, fb);
    235323  fprintf( stdout, STR(pow) "           : " PRI "\n", f1);
    236324
    237   f1 = FUNC(remainder) (3.01,2.0);
     325  fa = 3.01;
     326  fb = 2.0;
     327  f1 = FUNC(remainder) (fa, fb);
    238328  fprintf( stdout, STR(remainder) "     : " PRI "\n", f1);
    239329
    240   f1 = FUNC(remquo) (29.0,3.0,&i1);
     330  fa = 29.0;
     331  fb = 3.0;
     332  f1 = FUNC(remquo) (fa, fb, &i1);
    241333  fprintf( stdout, STR(remquo) "        : " PRI "\n", f1);
    242334
    243   f1 = FUNC(rint) (0.5);
     335  fa = 0.5;
     336  f1 = FUNC(rint) (fa);
    244337  fprintf( stdout, STR(rint) "          : " PRI "\n", f1);
    245   f1 = FUNC(rint) (-0.5);
     338  fa = -0.5;
     339  f1 = FUNC(rint) (fa);
    246340  fprintf( stdout, STR(rint) "          : " PRI "\n", f1);
    247341
    248   f1 = FUNC(round) (0.5);
     342  fa = 0.5;
     343  f1 = FUNC(round) (fa);
    249344  fprintf( stdout, STR(round) "         : " PRI "\n", f1);
    250   f1 = FUNC(round) (-0.5);
     345  fa = -0.5;
     346  f1 = FUNC(round) (fa);
    251347  fprintf( stdout, STR(round) "         : " PRI "\n", f1);
    252348
    253   f1 = FUNC(scalbln) (1.2,3);
     349  fa = 1.2;
     350  ia = 3;
     351  f1 = FUNC(scalbln) (fa, ia);
    254352  fprintf( stdout, STR(scalbln) "       : " PRI "\n", f1);
    255353
    256   f1 = FUNC(scalbn) (1.2,3);
     354  fa = 1.2;
     355  ia = 3;
     356  f1 = FUNC(scalbn) (fa, ia);
    257357  fprintf( stdout, STR(scalbn) "        : " PRI "\n", f1);
    258358
    259359  /* no type-specific variant */
    260   i1 = signbit(1.0);
     360  fa = 1.0;
     361  i1 = signbit(fa);
    261362  fprintf( stdout, "signbit        : %i\n", i1);
    262363
    263   f1 = FUNC(sin) (M_PI_4);
     364  fa = M_PI_4;
     365  f1 = FUNC(sin) (fa);
    264366  fprintf( stdout, STR(sin) "           : " PRI "\n", f1);
    265367
    266   f1 = FUNC(sinh) (M_PI_4);
     368  fa = M_PI_4;
     369  f1 = FUNC(sinh) (fa);
    267370  fprintf( stdout, STR(sinh) "          : " PRI "\n", f1);
    268371
    269   f1 = FUNC(sqrt) (9.0);
     372  fa = 9.0;
     373  f1 = FUNC(sqrt) (fa);
    270374  fprintf( stdout, STR(sqrt) "          : " PRI "\n", f1);
    271375
    272   f1 = FUNC(tan) (M_PI_4);
     376  fa = M_PI_4;
     377  f1 = FUNC(tan) (fa);
    273378  fprintf( stdout, STR(tan) "           : " PRI "\n", f1);
    274379
    275   f1 = FUNC(tanh) (M_PI_4);
     380  fa = M_PI_4;
     381  f1 = FUNC(tanh) (fa);
    276382  fprintf( stdout, STR(tanh) "          : " PRI "\n", f1);
    277383
    278   f1 = FUNC(tgamma) (2.1);
     384  fa = 2.1;
     385  f1 = FUNC(tgamma) (fa);
    279386  fprintf( stdout, STR(tgamma) "        : " PRI "\n", f1);
    280387
    281   f1 = FUNC(trunc) (3.5);
     388  fa = 3.5;
     389  f1 = FUNC(trunc) (fa);
    282390  fprintf( stdout, STR(trunc) "         : " PRI "\n", f1);
    283391
    284   f1 = FUNC(y0) (1.2);
     392  fa = 1.2;
     393  f1 = FUNC(y0) (fa);
    285394  fprintf( stdout, STR(y0) "            : " PRI "\n", f1);
    286395
    287   f1 = FUNC(y1) (1.2);
     396  fa = 1.2;
     397  f1 = FUNC(y1) (fa);
    288398  fprintf( stdout, STR(y1) "            : " PRI "\n", f1);
    289399
    290   f1 = FUNC(yn) (3,1.2);
     400  ia = 3;
     401  fa = 1.2;
     402  f1 = FUNC(yn) (ia, fa);
    291403  fprintf( stdout, STR(yn) "            : " PRI "\n", f1);
    292404#endif
Note: See TracChangeset for help on using the changeset viewer.