aboutsummaryrefslogtreecommitdiffstats
path: root/print
diff options
context:
space:
mode:
authorrakuco <rakuco@FreeBSD.org>2018-05-18 18:19:00 +0800
committerrakuco <rakuco@FreeBSD.org>2018-05-18 18:19:00 +0800
commit1b87d546d87d7408ef0f167aa2cdc17a8aad90bf (patch)
tree8dd47a74c71676b6a9e895ab9d386e61dd7176e1 /print
parentc420c84a613a8f5af4ea221ffb5c12f1fbd0f3cf (diff)
downloadfreebsd-ports-gnome-1b87d546d87d7408ef0f167aa2cdc17a8aad90bf.tar.gz
freebsd-ports-gnome-1b87d546d87d7408ef0f167aa2cdc17a8aad90bf.tar.zst
freebsd-ports-gnome-1b87d546d87d7408ef0f167aa2cdc17a8aad90bf.zip
Add a patch to fix the build on FreeBSD 10.4.
pkg-fallout reports the following error: TexRow.cpp:271:6: error: return type 'const TexRow::TextEntry' must match previous return type 'TexRow::TextEntry' when lambda expression has unspecified explicit return type return text_none; ^ TexRow.cpp:273:3: error: return type 'const TexRow::TextEntry' must match previous return type 'TexRow::TextEntry' when lambda expression has unspecified explicit return type return text_none; ^ TexRow.cpp:288:6: error: return type 'lyx::TexRow::TextEntry' must match previous return type 'const TexRow::TextEntry' when lambda expression has unspecified explicit return type return last_pos; ^ TexRow.cpp:290:6: error: return type 'struct TextEntry' must match previous return type 'const TexRow::TextEntry' when lambda expression has unspecified explicit return type return entry.text; ^ TexRow.cpp:293:3: error: return type 'lyx::TexRow::TextEntry' must match previous return type 'const TexRow::TextEntry' when lambda expression has unspecified explicit return type return last_pos; ^ Make the lambda return type explicit to work around what looks like a bug on an old clang version. Not bumping PORTREVISION, as this shouldn't change the code in FreeBSD versions with a more recent clang.
Diffstat (limited to 'print')
-rw-r--r--print/lyx/files/patch-src_TexRow.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/print/lyx/files/patch-src_TexRow.cpp b/print/lyx/files/patch-src_TexRow.cpp
new file mode 100644
index 000000000000..74669e97c592
--- /dev/null
+++ b/print/lyx/files/patch-src_TexRow.cpp
@@ -0,0 +1,39 @@
+Fixes the build on 10.4 with clang 3.4.1.
+
+ TexRow.cpp:271:6: error: return type 'const TexRow::TextEntry' must match previous return type 'TexRow::TextEntry' when lambda expression has unspecified explicit return type
+ return text_none;
+ ^
+ TexRow.cpp:273:3: error: return type 'const TexRow::TextEntry' must match previous return type 'TexRow::TextEntry' when lambda expression has unspecified explicit return type
+ return text_none;
+ ^
+ TexRow.cpp:288:6: error: return type 'lyx::TexRow::TextEntry' must match previous return type 'const TexRow::TextEntry' when lambda expression has unspecified explicit return type
+ return last_pos;
+ ^
+ TexRow.cpp:290:6: error: return type 'struct TextEntry' must match previous return type 'const TexRow::TextEntry' when lambda expression has unspecified explicit return type
+ return entry.text;
+ ^
+ TexRow.cpp:293:3: error: return type 'lyx::TexRow::TextEntry' must match previous return type 'const TexRow::TextEntry' when lambda expression has unspecified explicit return type
+ return last_pos;
+ ^
+
+Not upstreamable, this seems to be a workaround for a compiler bug.
+--- src/TexRow.cpp.orig 2018-02-25 00:11:18 UTC
++++ src/TexRow.cpp
+@@ -260,7 +260,7 @@ TexRow::getEntriesFromRow(int const row) const
+ return {text_none, text_none};
+
+ // find the start entry
+- TextEntry const start = [&]() {
++ TextEntry const start = [&]() -> TextEntry const {
+ for (size_t j = i; j > 0; --j) {
+ if (!isNone(rowlist_[j].getTextEntry()))
+ return rowlist_[j].getTextEntry();
+@@ -274,7 +274,7 @@ TexRow::getEntriesFromRow(int const row) const
+ } ();
+
+ // find the end entry
+- TextEntry end = [&]() {
++ TextEntry end = [&]() -> TextEntry const {
+ if (isNone(start))
+ return text_none;
+ // select up to the last position of the starting paragraph as a