title: Flexible array error with gcc 6 but not with gcc 4
body: <p>I'm trying to compile a piece of code written by a colleague. On my machine with gcc 6.1.1 I get this error:</p>
  
  <pre><code>In file included from src/TYAGlobalLibs.cc:1:0:
  ./include/TYAGlobalLibs.hh:112:17: error: flexible array member ‘TYA::TMultiHist::fh’ not at end of ‘class TYA::TMultiHist’
   TH1F    *fh[];
               ^
  ./include/TYAGlobalLibs.hh:102:9: note: in the definition of ‘class TYA::TMultiHist’
  class TMultiHist{
        ^~~~~~~~~~
  </code></pre>
  
  <p>It seems that this is a forbidden code path and as such it triggers a compiler error; however, using gcc 4.5.2 the same file compiles without error. I use these compiler options for g++:</p>
  
  <pre><code>-O2 -Wall -fPIC -pthread -m32 -std=c++98
  </code></pre>
  
  <p>for both 6.1.1 and for 4.5.2. In case it matters, gcc 6 runs on a 64 bit machine while gcc 4 on a 32 bit one. Here's a minimal code snippet to reproduce the issue:</p>
  
  <pre><code>struct test{
          int a;
          float b[];
          double c;
  };
  
  int main(){     
  }
  </code></pre>
  
  <p>Does anybody know why this happens and eventually if there are compiler options to make gcc 6 compile without errors (I have no chance of changing the code, it's not under my control)?</p>