sourceHighlight: patch to fix build with gcc 16

The `ranges` name in the test here conflicts with the
`namespace std::ranges { }` from GCC 16, causing this test to fail to
build with "error: reference to 'ranges' is ambiguous". To avoid this,
we simply rename the variable.
This commit is contained in:
whispers
2026-06-11 23:00:26 -04:00
committed by Vladimír Čunát
parent 017fed1d63
commit aab37bd258
2 changed files with 62 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
diff --git a/lib/tests/test_regexranges_main.cpp b/lib/tests/test_regexranges_main.cpp
index 567d79230c..e28bba47e5 100644
--- a/lib/tests/test_regexranges_main.cpp
+++ b/lib/tests/test_regexranges_main.cpp
@@ -12,26 +12,26 @@
using namespace std;
using namespace srchilite;
-RegexRanges ranges;
+RegexRanges regexRanges;
void check_range_regex(const string &s, bool expectedTrue = true) {
cout << "checking " << s << endl;
if (expectedTrue)
- assertTrue(ranges.addRegexRange(s));
+ assertTrue(regexRanges.addRegexRange(s));
else
- assertFalse(ranges.addRegexRange(s));
+ assertFalse(regexRanges.addRegexRange(s));
}
void check_match(const string &line, const string &expected = "") {
cout << "searching inside " << line;
const boost::regex *matched = 0;
if (expected != "") {
- matched = ranges.matches(line);
+ matched = regexRanges.matches(line);
assertTrue(matched != 0);
assertEquals(expected, matched->str());
cout << " found " << *matched << endl;
} else {
- assertTrue(ranges.matches(line) == 0);
+ assertTrue(regexRanges.matches(line) == 0);
cout << " not found" << endl;
}
}
@@ -39,9 +39,9 @@
void check_in_range(const string &s, bool expectedTrue = true) {
cout << "checking " << s << "... ";
if (expectedTrue) {
- assertTrue(ranges.isInRange(s));
+ assertTrue(regexRanges.isInRange(s));
} else {
- assertFalse(ranges.isInRange(s));
+ assertFalse(regexRanges.isInRange(s));
}
cout << expectedTrue << endl;
}
@@ -57,7 +57,7 @@
check_range_regex("{notclosed");
// reset regular expressions
- ranges.clear();
+ regexRanges.clear();
check_range_regex("/// foo");
check_range_regex("/// bar");

View File

@@ -37,6 +37,11 @@ stdenv.mkDerivation rec {
url = "https://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=ab9fe5cb9b85c5afab94f2a7f4b6d7d473c14ee9";
hash = "sha256-wmSLgLnLuFE+IC6AjxzZp/HEnaOCS1VfY2cac0T7Y+w=";
})
# GCC 16 detects ambiguity in the `ranges` name in a test (conflicts with
# `namespace std::range { }` from GCC), so we rename the variable to
# disambiguate.
./gcc16-disambiguate-regex-ranges-test.patch
]
++ lib.optionals stdenv.cc.isClang [
# Adds compatibility with C++17 by removing the `register` storage class specifier.