mirror of
git://sourceware.org/git/glibc.git
synced 2025-03-06 20:58:33 +01:00
Return EXIT_UNSUPPORTED if __builtin_add_overflow unavailable
Since GCC 4.9 doesn't have __builtin_add_overflow: In file included from tst-stringtable.c:180:0: stringtable.c: In function ‘stringtable_finalize’: stringtable.c:185:7: error: implicit declaration of function ‘__builtin_add_overflow’ [-Werror=implicit-function-declaration] else if (__builtin_add_overflow (previous->offset, ^ return EXIT_UNSUPPORTED for GCC 4.9 or older. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sam James <sam@gentoo.org>
This commit is contained in:
parent
65817569ad
commit
335ba9b6c1
6 changed files with 52 additions and 0 deletions
|
@ -17,6 +17,7 @@
|
|||
|
||||
#include <array_length.h>
|
||||
#include <stdlib.h>
|
||||
#if __GNUC_PREREQ (5, 0)
|
||||
#include <string.h>
|
||||
#include <stringtable.h>
|
||||
#include <support/check.h>
|
||||
|
@ -179,3 +180,12 @@ do_test (void)
|
|||
#define _(arg) arg
|
||||
#include "stringtable.c"
|
||||
#include "stringtable_free.c"
|
||||
#else
|
||||
#include <support/test-driver.h>
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
return EXIT_UNSUPPORTED;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <inttypes.h>
|
||||
#include <support/support.h>
|
||||
#include <support/temp_file.h>
|
||||
#include <support/test-driver.h>
|
||||
#include <stdio.h>
|
||||
|
||||
static int temp_fd = -1;
|
||||
|
@ -72,6 +73,7 @@ do_test (void)
|
|||
for (int i = 0; i < array_length (tests); i++)
|
||||
{
|
||||
/* Check if we run on port with 32 bit time_t size. */
|
||||
#if __GNUC_PREREQ (5, 0)
|
||||
time_t t;
|
||||
if (__builtin_add_overflow (tests[i].v1, 0, &t)
|
||||
|| __builtin_add_overflow (tests[i].v2, 0, &t))
|
||||
|
@ -80,6 +82,9 @@ do_test (void)
|
|||
"time_t overflows\n", i, tests[i].v1, tests[i].v2);
|
||||
continue;
|
||||
}
|
||||
#else
|
||||
return EXIT_UNSUPPORTED;
|
||||
#endif
|
||||
|
||||
if (tests[i].v1 >= 0x100000000LL && !y2106)
|
||||
{
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include <sys/mman.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#if __GNUC_PREREQ (5, 0)
|
||||
/* Called by large_buffer_checks below. */
|
||||
static void
|
||||
large_buffer_check (int fd, char *large_buffer, size_t large_buffer_size)
|
||||
|
@ -85,6 +86,12 @@ do_test_large_size (void)
|
|||
|
||||
xclose (fd);
|
||||
}
|
||||
#else
|
||||
static void
|
||||
do_test_large_size (void)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
do_test_by_size (size_t buffer_size)
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <support/check.h>
|
||||
|
||||
#if __GNUC_PREREQ (5, 0)
|
||||
static int
|
||||
do_test (void)
|
||||
{
|
||||
|
@ -70,3 +71,12 @@ do_test (void)
|
|||
}
|
||||
|
||||
#include <support/test-driver.c>
|
||||
#else
|
||||
#include <support/test-driver.h>
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
return EXIT_UNSUPPORTED;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <time.h>
|
||||
#include <support/check.h>
|
||||
|
||||
#if __GNUC_PREREQ (5, 0)
|
||||
static void
|
||||
test_difftime_helper (time_t t1, time_t t0, double exp_val)
|
||||
{
|
||||
|
@ -54,3 +55,12 @@ do_test (void)
|
|||
}
|
||||
|
||||
#include <support/test-driver.c>
|
||||
#else
|
||||
#include <support/test-driver.h>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return EXIT_UNSUPPORTED;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <support/check.h>
|
||||
|
||||
#if __GNUC_PREREQ (5, 0)
|
||||
const struct tm tm0 =
|
||||
{
|
||||
.tm_year = 70,
|
||||
|
@ -107,3 +108,12 @@ do_test (void)
|
|||
}
|
||||
|
||||
#include <support/test-driver.c>
|
||||
#else
|
||||
#include <support/test-driver.h>
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
return EXIT_UNSUPPORTED;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue