string: Fix string/tst-memmove-overflow to compile with GCC 7

GCC 8 relaxed what kind of expressions can be used in initializers,
and the previous use of static const variables relied on that.  Switch
to wide (non-int) enum constants instead, which is another GCC
extension that is more widely implemented.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
This commit is contained in:
Florian Weimer 2020-05-14 12:12:29 +02:00
parent 98b2dc7e20
commit a4a3519245

View File

@ -42,11 +42,11 @@ IMPL (memmove, 1)
/* Size of the part of the allocation which is not shared, at the /* Size of the part of the allocation which is not shared, at the
start and the end of the overall allocation. 4 MiB. */ start and the end of the overall allocation. 4 MiB. */
static const size_t unshared_size = 4U << 20; enum { unshared_size = (size_t) 4U << 20 };
/* The allocation is 2 GiB plus 8 MiB. This should work with all page /* The allocation is 2 GiB plus 8 MiB. This should work with all page
sizes that occur in practice. */ sizes that occur in practice. */
static const size_t allocation_size = (2U << 30) + 2 * unshared_size; enum { allocation_size = ((size_t) 2U << 30) + 2 * unshared_size };
/* Compute the expected byte at the given index. This is used to /* Compute the expected byte at the given index. This is used to
produce a non-repeating pattern. */ produce a non-repeating pattern. */