Compare commits

...
Sign in to create a new pull request.

4 commits

Author SHA1 Message Date
Fedora Release Engineering
96d07b164c Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 17:43:03 +00:00
Yaakov Selkowitz
20bb1a840e Fix build with GCC 15
GCC 15 added bounds-checks to vector<bool> when assertions are enabled,
which caused test "764: Leaked lookahead after nondeterministic parse
syntax error: glr2.cc FAILED (glr-regression.at:1862)".  The patch is from
Gentoo and was submitted upstream without response.

https://bugs.gentoo.org/935754
https://bugzilla.redhat.com/show_bug.cgi?id=2336443
2025-04-22 18:48:04 -04:00
Fedora Release Engineering
73bc4f2166 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 12:32:26 +00:00
Fedora Release Engineering
4dae814361 Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-17 18:19:38 +00:00
2 changed files with 83 additions and 2 deletions

View file

@ -0,0 +1,69 @@
https://bugs.gentoo.org/935754
https://lists.gnu.org/archive/html/bison-patches/2024-07/msg00000.html
* data/skeletons/glr2.cc (yyundeleteLastStack): Recover
yylookaheadNeeds stack entry also, to prevent desyncing the sizes
of yystates and yylookaheadNeeds.
(class glr_state_set): New field yylookaheadNeedLastDeleted,
tracks lookahead need of last deleted state.
(yymarkStackDeleted): Save yylookaheadNeeds also.
---
Hi!
GCC 15 has added bounds-checks to vector<bool> when assertions are
enabled. This has caught a bug in Bison. See bug referenced above.
Now, WRT the fix: I am not sure of its correctness, but it appears to
pass tests and everything seems to indicate that the presumption it is
based on is correct. That presumption is that the two stacks mentioned
above (yylookaheadNeeds and yystates) ought to be the same size. I
inferred this because all other locations that alter the size of the two
vectors appear to do so in lock-step.
TIA, have a lovely day.
data/skeletons/glr2.cc | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/data/skeletons/glr2.cc b/data/skeletons/glr2.cc
index 970ccfdf..8b962d6f 100644
--- a/data/skeletons/glr2.cc
+++ b/data/skeletons/glr2.cc
@@ -1080,7 +1080,10 @@ namespace
{
size_t k = yyk.uget ();
if (yystates[k] != YY_NULLPTR)
- yylastDeleted = yystates[k];
+ {
+ yylastDeleted = yystates[k];
+ yylookaheadNeedLastDeleted = yylookaheadNeeds[k];
+ }
yystates[k] = YY_NULLPTR;
}
@@ -1093,6 +1096,7 @@ namespace
if (yylastDeleted == YY_NULLPTR || !yystates.empty ())
return;
yystates.push_back (yylastDeleted);
+ yylookaheadNeeds.push_back (yylookaheadNeedLastDeleted);
YYCDEBUG << "Restoring last deleted stack as stack #0.\n";
clearLastDeleted ();
}
@@ -1102,6 +1106,7 @@ namespace
void
yyremoveDeletes ()
{
+ YYASSERT(yystates.size () == yylookaheadNeeds.size ());
size_t newsize = yystates.size ();
/* j is the number of live stacks we have seen. */
for (size_t i = 0, j = 0; j < newsize; ++i)
@@ -1160,6 +1165,7 @@ namespace
/** The last stack we invalidated. */
glr_state* yylastDeleted;
+ bool yylookaheadNeedLastDeleted;
}; // class glr_state_set
} // namespace
--
2.45.2

View file

@ -1,7 +1,7 @@
Summary: A GNU general-purpose parser generator
Name: bison
Version: 3.8.2
Release: 8%{?dist}
Release: 11%{?dist}
# An SPDX license string check done against bison-3.8.2 found strings
# corresponding to the following licenses across the bison source tree:
@ -14,6 +14,9 @@ Source1: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
# gpg2 --export --export-options export-minimal 7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E > gpgkey-7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E.gpg
Source2: gpgkey-7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E.gpg
# from Gentoo sys-devel/bison
Patch0: bison-3.8.2-gcc15-glibcxx-assertions.patch
# testsuite dependency
BuildRequires: gcc-c++
BuildRequires: autoconf
@ -80,7 +83,7 @@ Bison manual section for more information.
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup
%autosetup -p1
%build
%configure
@ -124,6 +127,15 @@ gzip -9nf ${RPM_BUILD_ROOT}%{_infodir}/bison.info*
%{_libdir}/liby.a
%changelog
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Tue Jan 23 2024 Fedora Release Engineering <releng@fedoraproject.org> - 3.8.2-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild