This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch, testsuite] Applying non_bionic effective target to particular tests
- From: Alexander Ivchenko <aivchenk at gmail dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, enh <enh at google dot com>
- Date: Fri, 15 Aug 2014 17:49:18 +0400
- Subject: Re: [patch, testsuite] Applying non_bionic effective target to particular tests
- Authentication-results: sourceware.org; auth=none
- References: <CACysShjX480ABEnsd46bXVeo0zsrXoFLT_fFhpOebzRpF0g=Lw at mail dot gmail dot com> <Pine dot LNX dot 4 dot 64 dot 1408132043280 dot 16622 at digraph dot polyomino dot org dot uk>
Hi Joseph,
I seem to address what you've said.
Except for I still left non_bionic check for three tests
(Namely: builtins-67.c, strlenopt-14g.c, strlenopt-14gf.c)
because checks for the presence of mempcpy, stpcpy and rintl (sorry, I
didn't mention it last time)
seem to be very narrow, I don't think they would bring any value.
I tested 'make check' on x86_64-unknown-linux-gnu and i686-pc-linux-android.
2014-08-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
* lib/target-supports.exp (error_h): New check.
(libc_has_complex_functions): Ditto.
(tgmath_h): Ditto.
* gcc.dg/builtins-59.c: Add libc_has_complex_functions check.
* gcc.dg/builtins-61.c: Likewise.
* gcc.dg/builtins-67.c: Disable test for Bionic.
* gcc.dg/strlenopt-14g.c: Likewise.
* gcc.dg/strlenopt-14gf.c: Likewise.
* gcc.dg/c99-tgmath-1.c: Add tgmath_h check.
* gcc.dg/c99-tgmath-2.c: Likewise.
* gcc.dg/c99-tgmath-3.c: Likewise.
* gcc.dg/c99-tgmath-4.c: Likewise.
* gcc.dg/dfp/convert-dfp-round-thread.c: Add error_h check.
Here is the updated patch:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 505df55..02268e6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,19 @@
+2014-08-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
+
+ * lib/target-supports.exp (error_h): New check.
+ (libc_has_complex_functions): Ditto.
+ (tgmath_h): Ditto.
+ * gcc.dg/builtins-59.c: Add libc_has_complex_functions check.
+ * gcc.dg/builtins-61.c: Likewise.
+ * gcc.dg/builtins-67.c: Disable test for Bionic.
+ * gcc.dg/strlenopt-14g.c: Likewise.
+ * gcc.dg/strlenopt-14gf.c: Likewise.
+ * gcc.dg/c99-tgmath-1.c: Add tgmath_h check.
+ * gcc.dg/c99-tgmath-2.c: Likewise.
+ * gcc.dg/c99-tgmath-3.c: Likewise.
+ * gcc.dg/c99-tgmath-4.c: Likewise.
+ * gcc.dg/dfp/convert-dfp-round-thread.c: Add error_h check.
+
2014-08-15 Jakub Jelinek <jakub@redhat.com>
Tobias Burnus <burnus@net-b.de>
diff --git a/gcc/testsuite/gcc.dg/builtins-59.c
b/gcc/testsuite/gcc.dg/builtins-59.c
index b940d39..f5c1803 100644
--- a/gcc/testsuite/gcc.dg/builtins-59.c
+++ b/gcc/testsuite/gcc.dg/builtins-59.c
@@ -1,6 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-fdump-tree-gimple" } */
/* { dg-require-effective-target c99_runtime } */
+/* { dg-require-effective-target libc_has_complex_functions } */
double test (double x)
{
diff --git a/gcc/testsuite/gcc.dg/builtins-61.c
b/gcc/testsuite/gcc.dg/builtins-61.c
index dff163f..a3310af 100644
--- a/gcc/testsuite/gcc.dg/builtins-61.c
+++ b/gcc/testsuite/gcc.dg/builtins-61.c
@@ -1,6 +1,7 @@
/* { dg-do compile } */
/* { dg-options "-O -ffast-math -fdump-tree-optimized" } */
/* { dg-require-effective-target c99_runtime } */
+/* { dg-require-effective-target libc_has_complex_functions } */
double test1 (double x)
{
diff --git a/gcc/testsuite/gcc.dg/builtins-67.c
b/gcc/testsuite/gcc.dg/builtins-67.c
index 22267bd..0992fe1 100644
--- a/gcc/testsuite/gcc.dg/builtins-67.c
+++ b/gcc/testsuite/gcc.dg/builtins-67.c
@@ -3,6 +3,8 @@
/* { dg-do link } */
/* { dg-options "-ffast-math -lm" } */
/* { dg-add-options c99_runtime } */
+/* Bionic doesn't have rintl */
+/* { dg-require-effective-target non_bionic } */
#include "builtins-config.h"
diff --git a/gcc/testsuite/gcc.dg/c99-tgmath-1.c
b/gcc/testsuite/gcc.dg/c99-tgmath-1.c
index c7d848c..cfa02a9 100644
--- a/gcc/testsuite/gcc.dg/c99-tgmath-1.c
+++ b/gcc/testsuite/gcc.dg/c99-tgmath-1.c
@@ -3,6 +3,7 @@
/* { dg-do preprocess { target c99_runtime } } */
/* { dg-options "-std=iso9899:1999" } */
/* { dg-add-options c99_runtime } */
+/* { dg-require-effective-target tgmath_h } */
/* Test that tgmath defines the macros it's supposed to. */
#include <tgmath.h>
diff --git a/gcc/testsuite/gcc.dg/c99-tgmath-2.c
b/gcc/testsuite/gcc.dg/c99-tgmath-2.c
index d4f1f87..1a1153c 100644
--- a/gcc/testsuite/gcc.dg/c99-tgmath-2.c
+++ b/gcc/testsuite/gcc.dg/c99-tgmath-2.c
@@ -3,6 +3,7 @@
/* { dg-do compile { target c99_runtime } } */
/* { dg-options "-std=iso9899:1999" } */
/* { dg-add-options c99_runtime } */
+/* { dg-require-effective-target tgmath_h } */
/* Test that invoking type-generic sin on a float invokes sinf. */
#include <tgmath.h>
diff --git a/gcc/testsuite/gcc.dg/c99-tgmath-3.c
b/gcc/testsuite/gcc.dg/c99-tgmath-3.c
index 3e98304..a595cf6 100644
--- a/gcc/testsuite/gcc.dg/c99-tgmath-3.c
+++ b/gcc/testsuite/gcc.dg/c99-tgmath-3.c
@@ -3,6 +3,7 @@
/* { dg-do compile { target c99_runtime } } */
/* { dg-options "-std=iso9899:1999" } */
/* { dg-add-options c99_runtime } */
+/* { dg-require-effective-target tgmath_h } */
/* Test that invoking type-generic exp on a complex invokes cexp. */
#include <tgmath.h>
diff --git a/gcc/testsuite/gcc.dg/c99-tgmath-4.c
b/gcc/testsuite/gcc.dg/c99-tgmath-4.c
index d8dc043..c05a1c5 100644
--- a/gcc/testsuite/gcc.dg/c99-tgmath-4.c
+++ b/gcc/testsuite/gcc.dg/c99-tgmath-4.c
@@ -3,6 +3,7 @@
/* { dg-do compile { target c99_runtime } } */
/* { dg-options "-std=iso9899:1999" } */
/* { dg-add-options c99_runtime } */
+/* { dg-require-effective-target tgmath_h } */
/* Test that invoking type-generic pow on complex float invokes cpowf. */
#include <tgmath.h>
diff --git a/gcc/testsuite/gcc.dg/dfp/convert-dfp-round-thread.c
b/gcc/testsuite/gcc.dg/dfp/convert-dfp-round-thread.c
index 6727e80..59d9569 100644
--- a/gcc/testsuite/gcc.dg/dfp/convert-dfp-round-thread.c
+++ b/gcc/testsuite/gcc.dg/dfp/convert-dfp-round-thread.c
@@ -1,5 +1,7 @@
/* { dg-options "-std=gnu99 -D_GNU_SOURCE -pthread" } */
/* { dg-do run { target i?86-*-linux* i?86-*-gnu* x86_64-*-linux* } } */
+/* { dg-require-effective-target error_h } */
+
/* N1150 5.2: Conversions among decimal floating types and between
decimal floating types and generic floating types.
diff --git a/gcc/testsuite/gcc.dg/strlenopt-14g.c
b/gcc/testsuite/gcc.dg/strlenopt-14g.c
index 86c57f1..809205b 100644
--- a/gcc/testsuite/gcc.dg/strlenopt-14g.c
+++ b/gcc/testsuite/gcc.dg/strlenopt-14g.c
@@ -1,6 +1,8 @@
/* This test needs runtime that provides stpcpy and mempcpy functions. */
/* { dg-do run { target *-*-linux* *-*-gnu* } } */
/* { dg-options "-O2 -fdump-tree-strlen" } */
+/* Bionic targets don't have mempcpy and stpcpy */
+/* { dg-require-effective-target non_bionic } */
#define USE_GNU
#include "strlenopt.h"
diff --git a/gcc/testsuite/gcc.dg/strlenopt-14gf.c
b/gcc/testsuite/gcc.dg/strlenopt-14gf.c
index 8b78538..e09a3fc 100644
--- a/gcc/testsuite/gcc.dg/strlenopt-14gf.c
+++ b/gcc/testsuite/gcc.dg/strlenopt-14gf.c
@@ -2,6 +2,8 @@
functions. */
/* { dg-do run { target *-*-linux* *-*-gnu* } } */
/* { dg-options "-O2 -fdump-tree-strlen" } */
+/* Bionic targets don't have mempcpy and stpcpy */
+/* { dg-require-effective-target non_bionic } */
#define FORTIFY_SOURCE 2
#include "strlenopt-14g.c"
diff --git a/gcc/testsuite/lib/target-supports.exp
b/gcc/testsuite/lib/target-supports.exp
index c03370d..4ed4439 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -5054,6 +5054,30 @@ proc check_effective_target_non_bionic {} {
}]
}
+# Return true if this target has error.h header.
+
+proc check_effective_target_error_h {} {
+ return [check_no_compiler_messages error_h object {
+ #include <error.h>
+ }]
+}
+
+# Return true if this target has tgmath.h header.
+
+proc check_effective_target_tgmath_h {} {
+ return [check_no_compiler_messages tgmath_h object {
+ #include <tgmath.h>
+ }]
+}
+
+# Return true if target's libc supports complex functions.
+
+proc check_effective_target_libc_has_complex_functions {} {
+ return [check_no_compiler_messages libc_has_complex_functions object {
+ #include <complex.h>
+ }]
+}
+
# Return 1 if
# (a) an error of a few ULP is expected in string to floating-point
# conversion functions; and
thanks,
Alexander
2014-08-14 0:46 GMT+04:00 Joseph S. Myers <joseph@codesourcery.com>:
> On Thu, 14 Aug 2014, Alexander Ivchenko wrote:
>
>> Hi,
>>
>> This patch disables a bunch of tests that fail when using Bionic libc.
>> But this is expected; three reasons:
>> - Bionic does not support complex functions.
>> - Bionic does not have tgmath.h and error.h headers.
>> - Bionic does not have mempcpy and stpcpy.
>
> Testing logical features for each of these would seem better than testing
> for Bionic.
>
> --
> Joseph S. Myers
> joseph@codesourcery.com