Fix regcomp.c build for 32-bit with GCC mainline
Commit Message
On 11/21/2017 01:11 AM, Andreas Schwab wrote:
> This needs to go in a comment.
Sure, I installed the attached into glibc and merged it into Gnulib.
From 0285e6bdf223314d7751a83795001c0e87a1f825 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Wed, 22 Nov 2017 11:21:44 -0800
Subject: [PATCH] * posix/regcomp.c (init_word_char): Add comments.
---
ChangeLog | 4 ++++
posix/regcomp.c | 3 +++
2 files changed, 7 insertions(+)
@@ -1,3 +1,7 @@
+2017-11-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ * posix/regcomp.c (init_word_char): Add comments.
+
2017-11-22 Joseph Myers <joseph@codesourcery.com>
[BZ #22447]
@@ -925,12 +925,15 @@ init_word_char (re_dfa_t *dfa)
int ch = 0;
if (BE (dfa->map_notascii == 0, 1))
{
+ /* Avoid uint32_t and uint64_t as some non-GCC platforms lack
+ them, an issue when this code is used in Gnulib. */
bitset_word_t bits0 = 0x00000000;
bitset_word_t bits1 = 0x03ff0000;
bitset_word_t bits2 = 0x87fffffe;
bitset_word_t bits3 = 0x07fffffe;
if (BITSET_WORD_BITS == 64)
{
+ /* Pacify gcc -Woverflow on 32-bit platformns. */
dfa->word_char[0] = bits1 << 31 << 1 | bits0;
dfa->word_char[1] = bits3 << 31 << 1 | bits2;
i = 2;
--
2.14.3