aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2007-02-20 19:29:48 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2007-02-20 19:29:48 +0000
commit8df79ac594cb3c08f85452b809829151a3cc9f57 (patch)
tree47249a80a5dbc88769d790949b3075f407bbd2e3 /gcc
parenta024740df47c300e9797ba4ac61f9ec671fa1fd3 (diff)
downloadgcc-8df79ac594cb3c08f85452b809829151a3cc9f57.zip
gcc-8df79ac594cb3c08f85452b809829151a3cc9f57.tar.gz
gcc-8df79ac594cb3c08f85452b809829151a3cc9f57.tar.bz2
fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb, scalbn and scalbln.
* fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb, scalbn and scalbln. testsuite: * gcc.dg/torture/builtin-nonneg-1.c: Add checks for scalb, scalbn and scalbln. From-SVN: r122169
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/fold-const.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/torture/builtin-nonneg-1.c11
4 files changed, 20 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 61e247b..bf0fbcd 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 951de40..1e62300 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -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):
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d1e67da..c62ef00 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
diff --git a/gcc/testsuite/gcc.dg/torture/builtin-nonneg-1.c b/gcc/testsuite/gcc.dg/torture/builtin-nonneg-1.c
index 80cf3e3..1047881 100644
--- a/gcc/testsuite/gcc.dg/torture/builtin-nonneg-1.c
+++ b/gcc/testsuite/gcc.dg/torture/builtin-nonneg-1.c
@@ -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);