nixpkgs/pkgs/development/compilers/hhvm/flexible-array-members-gcc6.patch
Piotr Bogdan d9a0c68775 hhvm: fix build
Upstream re2 commit:

b94b7cd42e

Upstream bytecode.h commit:

f8a75ca667
2017-08-30 21:52:49 +02:00

34 lines
1.3 KiB
Diff

diff --git a/hphp/runtime/vm/bytecode.h b/hphp/runtime/vm/bytecode.h
index ddc7b69..edf807c 100644
--- a/hphp/runtime/vm/bytecode.h
+++ b/hphp/runtime/vm/bytecode.h
@@ -124,7 +124,7 @@ private:
static void* allocMem(unsigned nargs);
private:
- TypedValue m_extraArgs[];
+ TypedValue m_extraArgs[0];
TYPE_SCAN_FLEXIBLE_ARRAY_FIELD(m_extraArgs);
};
diff --git a/third-party/re2/src/re2/dfa.cc b/third-party/re2/src/re2/dfa.cc
index 483f678..3aa3610 100644
--- a/third-party/re2/src/re2/dfa.cc
+++ b/third-party/re2/src/re2/dfa.cc
@@ -101,8 +101,13 @@ class DFA {
uint flag_; // Empty string bitfield flags in effect on the way
// into this state, along with kFlagMatch if this
// is a matching state.
- std::atomic<State*> next_[]; // Outgoing arrows from State,
- // one per input byte class
+// Work around the bug affecting flexible array members in GCC 6.1 and 6.2.
+// (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70932)
+#if !defined(__clang__) && defined(__GNUC__) && __GNUC__ == 6 && __GNUC_MINOR__ >= 1
+ std::atomic<State*> next_[0]; // Outgoing arrows from State, one per input byte class
+#else
+ std::atomic<State*> next_[]; // Outgoing arrows from State, one per input byte class
+#endif
};
enum {