Modified: trunk/Source/WTF/ChangeLog (225895 => 225896)
--- trunk/Source/WTF/ChangeLog 2017-12-14 07:45:29 UTC (rev 225895)
+++ trunk/Source/WTF/ChangeLog 2017-12-14 08:17:56 UTC (rev 225896)
@@ -1,3 +1,19 @@
+2017-12-12 Yusuke Suzuki <utatane....@gmail.com>
+
+ REGRESSION(r225769): Build errors with constexpr std::tie on older gcc
+ https://bugs.webkit.org/show_bug.cgi?id=180692
+
+ Reviewed by Carlos Garcia Campos.
+
+ Due to libstdc++'s bug[1], std::tie is not annotated with constexpr in libstdc++ 5.
+ This patch adds WTF::tie for a work around. Since we do not want to
+ include <tuple> in StdLibExtras.h, we define this function for all
+ the compilers.
+
+ [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65978
+
+ * wtf/StdLibExtras.h:
+
2017-12-13 Mark Lam <mark....@apple.com>
Fill out some Poisoned APIs, fix some bugs, and add some tests.
Modified: trunk/Source/WTF/wtf/StdLibExtras.h (225895 => 225896)
--- trunk/Source/WTF/wtf/StdLibExtras.h 2017-12-14 07:45:29 UTC (rev 225895)
+++ trunk/Source/WTF/wtf/StdLibExtras.h 2017-12-14 08:17:56 UTC (rev 225896)
@@ -445,6 +445,14 @@
return dstIter;
}
+// libstdc++5 does not have constexpr std::tie. Since we cannot redefine std::tie with constexpr, we define WTF::tie instead.
+// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65978
+template <class ...Args>
+inline constexpr std::tuple<Args&...> tie(Args&... values) noexcept
+{
+ return std::tuple<Args&...>(values...);
+}
+
} // namespace WTF
// This version of placement new omits a 0 check.
Modified: trunk/Source/WebCore/ChangeLog (225895 => 225896)
--- trunk/Source/WebCore/ChangeLog 2017-12-14 07:45:29 UTC (rev 225895)
+++ trunk/Source/WebCore/ChangeLog 2017-12-14 08:17:56 UTC (rev 225896)
@@ -1,3 +1,16 @@
+2017-12-12 Yusuke Suzuki <utatane....@gmail.com>
+
+ REGRESSION(r225769): Build errors with constexpr std::tie on older gcc
+ https://bugs.webkit.org/show_bug.cgi?id=180692
+
+ Reviewed by Carlos Garcia Campos.
+
+ * platform/graphics/FontSelectionAlgorithm.h:
+ (WebCore::FontSelectionRange::operator== const):
+ (WebCore::FontSelectionRequest::tied const):
+ (WebCore::FontSelectionCapabilities::tied const):
+ (WebCore::FontSelectionSpecifiedCapabilities:: const):
+
2017-12-13 Daniel Bates <daba...@apple.com>
Fix the Windows build after <https://trac.webkit.org/changeset/225879>
Modified: trunk/Source/WebCore/platform/graphics/FontSelectionAlgorithm.h (225895 => 225896)
--- trunk/Source/WebCore/platform/graphics/FontSelectionAlgorithm.h 2017-12-14 07:45:29 UTC (rev 225895)
+++ trunk/Source/WebCore/platform/graphics/FontSelectionAlgorithm.h 2017-12-14 08:17:56 UTC (rev 225896)
@@ -283,7 +283,7 @@
constexpr bool operator==(const FontSelectionRange& other) const
{
- return std::tie(minimum, maximum) == std::tie(other.minimum, other.maximum);
+ return WTF::tie(minimum, maximum) == WTF::tie(other.minimum, other.maximum);
}
constexpr bool isValid() const
@@ -334,7 +334,7 @@
constexpr std::tuple<Value, Value, Value> tied() const
{
- return std::tie(weight, width, slope);
+ return WTF::tie(weight, width, slope);
}
#if !COMPILER_SUPPORTS(NSDMI_FOR_AGGREGATES)
@@ -371,7 +371,7 @@
constexpr std::tuple<Range, Range, Range> tied() const
{
- return std::tie(weight, width, slope);
+ return WTF::tie(weight, width, slope);
}
void expand(const FontSelectionCapabilities& capabilities)
@@ -419,12 +419,12 @@
constexpr std::tuple<OptionalRange&, OptionalRange&, OptionalRange&> tied()
{
- return std::tie(weight, width, slope);
+ return WTF::tie(weight, width, slope);
}
constexpr std::tuple<const OptionalRange&, const OptionalRange&, const OptionalRange&> tied() const
{
- return std::tie(weight, width, slope);
+ return WTF::tie(weight, width, slope);
}
FontSelectionSpecifiedCapabilities& operator=(const Capabilities& other)