aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-02-28 14:49:38 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2019-02-28 14:49:38 +0100
commit8bd326535cdb03a48c592573358cce95e5b7d040 (patch)
tree4990767e0acb51013f832d14f671b14c30a79a3b /gcc
parent32679718409ed923ce55d895a0860e3e2ac8abc3 (diff)
downloadgcc-8bd326535cdb03a48c592573358cce95e5b7d040.zip
gcc-8bd326535cdb03a48c592573358cce95e5b7d040.tar.gz
gcc-8bd326535cdb03a48c592573358cce95e5b7d040.tar.bz2
re PR c/89521 (ICE in expand_builtin_int_roundingfn, at builtins.c:2697)
PR c/89521 * gcc.dg/pr89521-1.c: New test. * gcc.dg/pr89521-2.c: New test. From-SVN: r269280
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/pr89521-1.c13
-rw-r--r--gcc/testsuite/gcc.dg/pr89521-2.c42
3 files changed, 61 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a32df6c..79de603 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2019-02-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/89521
+ * gcc.dg/pr89521-1.c: New test.
+ * gcc.dg/pr89521-2.c: New test.
+
2019-02-28 John David Anglin <danglin@gcc.gnu.org>
PR testsuite/89441
diff --git a/gcc/testsuite/gcc.dg/pr89521-1.c b/gcc/testsuite/gcc.dg/pr89521-1.c
new file mode 100644
index 0000000..ebf2c59
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr89521-1.c
@@ -0,0 +1,13 @@
+/* PR c/89521 */
+/* { dg-do compile } */
+/* { dg-options "-Ofast -w" } */
+
+#define A(name) __typeof (__builtin_##name (0)) name (); long name##1 () { return name (1); }
+#define B(name) A(name) A(name##f) A(name##l)
+B (ceil)
+B (floor)
+B (round)
+B (trunc)
+B (nearbyint)
+B (rint)
+B (logb)
diff --git a/gcc/testsuite/gcc.dg/pr89521-2.c b/gcc/testsuite/gcc.dg/pr89521-2.c
new file mode 100644
index 0000000..5e37c91
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr89521-2.c
@@ -0,0 +1,42 @@
+/* PR c/89521 */
+/* { dg-do compile } */
+/* { dg-options "-Ofast -w" } */
+
+#define A(name) __typeof (__builtin_##name (0)) name (); \
+ float name##1 () { return name (1); } \
+ double name##2 () { return name (1); }
+#define B(name) A(name) A(name##l)
+B (cosh)
+B (exp)
+B (exp10)
+B (exp2)
+B (expm1)
+B (gamma)
+B (j0)
+B (j1)
+B (lgamma)
+B (pow10)
+B (sinh)
+B (tgamma)
+B (y0)
+B (y1)
+B (acos)
+B (acosh)
+B (asin)
+B (asinh)
+B (atan)
+B (atanh)
+B (cbrt)
+B (cos)
+B (erf)
+B (erfc)
+B (log)
+B (log10)
+B (log2)
+B (log1p)
+B (sin)
+B (tan)
+B (tanh)
+B (sqrt)
+B (fabs)
+B (logb)