OSDN Git Service

* fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Feb 2007 19:29:48 +0000 (19:29 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Feb 2007 19:29:48 +0000 (19:29 +0000)
scalbn and scalbln.

testsuite:
* gcc.dg/torture/builtin-nonneg-1.c: Add checks for scalb, scalbn
and scalbln.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122169 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/torture/builtin-nonneg-1.c

index 61e247b..bf0fbcd 100644 (file)
@@ -1,3 +1,8 @@
+2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
+       scalbn and scalbln.
+
 2007-02-20  Geoffrey Keating  <geoffk@apple.com>
 
        * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
index 951de40..1e62300 100644 (file)
@@ -13352,6 +13352,9 @@ tree_expr_nonnegative_warnv_p (tree t, bool *strict_overflow_p)
            CASE_FLT_FN (BUILT_IN_NEARBYINT):
            CASE_FLT_FN (BUILT_IN_RINT):
            CASE_FLT_FN (BUILT_IN_ROUND):
+           CASE_FLT_FN (BUILT_IN_SCALB):
+           CASE_FLT_FN (BUILT_IN_SCALBLN):
+           CASE_FLT_FN (BUILT_IN_SCALBN):
            CASE_FLT_FN (BUILT_IN_SIGNBIT):
            CASE_FLT_FN (BUILT_IN_SINH):
            CASE_FLT_FN (BUILT_IN_TANH):
index d1e67da..c62ef00 100644 (file)
@@ -1,3 +1,8 @@
+2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * gcc.dg/torture/builtin-nonneg-1.c: Add checks for scalb, scalbn
+       and scalbln.
+
 2007-02-20  Geoffrey Keating  <geoffk@apple.com>
 
        * gcc.dg/darwin-minversion-1.c: New.
index 80cf3e3..1047881 100644 (file)
@@ -120,9 +120,9 @@ void test(double d1, double d2, float f1, float f2,
      || signbitl(FN##l(fabsl(ld1),fabsl(ld2)))) \
    link_failure_##FN()
 
-  /* These are nonnegative if the first argument is, 2nd arg is int.  */
-#define ARG2TEST1_A2INT(FN) \
- extern void link_failure_##FN (void); PROTOTYPE2TYPE2(FN, int) \
+  /* These are nonnegative if the first argument is, 2nd arg is an int.  */
+#define ARG1TEST2_A2INT(FN, INTTYPE) \
+ extern void link_failure_##FN (void); PROTOTYPE2TYPE2(FN, INTTYPE) \
  if (signbit(FN(fabs(d1),d2)) || signbitf(FN##f(fabsf(f1),f2)) \
      || signbitl(FN##l(fabsl(ld1),ld2))) \
    link_failure_##FN()
@@ -143,7 +143,7 @@ void test(double d1, double d2, float f1, float f2,
   ARG1TEST1 (expm1);
   ARG1TEST1 (floor);
   ARG1TEST2 (fmod);
-  ARG2TEST1_A2INT (ldexp);
+  ARG1TEST2_A2INT (ldexp, int);
   ARG1TEST1_RTYPE (llrint, long long);
   ARG1TEST1_RTYPE (llround, long long);
   ARG1TEST1_RTYPE (lrint, long);
@@ -155,6 +155,9 @@ void test(double d1, double d2, float f1, float f2,
   ARG1TEST2 (pow);
   ARG1TEST1 (rint);
   ARG1TEST1 (round);
+  ARG1TEST2 (scalb);
+  ARG1TEST2_A2INT (scalbln, long);
+  ARG1TEST2_A2INT (scalbn, int);
   ARG1TEST1_RTYPE (signbit, int);
   ARG1TEST1 (sinh);
   ARG1TEST1 (tanh);