21 lines
		
	
	
		
			974 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			974 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
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 {
 |