From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- mfbt/double-conversion/use-static_assert.patch | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 mfbt/double-conversion/use-static_assert.patch (limited to 'mfbt/double-conversion/use-static_assert.patch') diff --git a/mfbt/double-conversion/use-static_assert.patch b/mfbt/double-conversion/use-static_assert.patch new file mode 100644 index 000000000..414378259 --- /dev/null +++ b/mfbt/double-conversion/use-static_assert.patch @@ -0,0 +1,25 @@ +diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h +--- a/mfbt/double-conversion/utils.h ++++ b/mfbt/double-conversion/utils.h +@@ -275,19 +275,18 @@ class StringBuilder { + // There is an additional use for BitCast. + // Recent gccs will warn when they see casts that may result in breakage due to + // the type-based aliasing rule. If you have checked that there is no breakage + // you can use BitCast to cast one pointer type to another. This confuses gcc + // enough that it can no longer see that you have cast one pointer type to + // another thus avoiding the warning. + template + inline Dest BitCast(const Source& source) { +- // Compile time assertion: sizeof(Dest) == sizeof(Source) +- // A compile error here means your Dest and Source have different sizes. +- typedef char VerifySizesAreEqual[sizeof(Dest) == sizeof(Source) ? 1 : -1]; ++ static_assert(sizeof(Dest) == sizeof(Source), ++ "BitCast's source and destination types must be the same size"); + + Dest dest; + memmove(&dest, &source, sizeof(dest)); + return dest; + } + + template + inline Dest BitCast(Source* source) { -- cgit v1.2.3