title: Frama-c syntax error on macro expansion
body: <p>I am getting the following syntax error: </p>
  
  <pre><code>../stat-time.h:58:[kernel] user error: Cannot find field st_atim
  </code></pre>
  
  <p>This is in the gnu stat-time.h by Paul Eggert. Here's the snippet causing the error: </p>
  
  <pre><code>#define STAT_TIMESPEC(st, st_xtim) ((st)-&gt;st_xtim)
  
  long int get_stat_atime_ns(struct stat const *st) {
    ...
    // 58:
    return STAT_TIMESPEC(st, st_atim).tv_nsec;
    ...
  }
  </code></pre>
  
  <p>I tried to preprocess the file first, then run frama-c on the preprocessed file, but that didn't help. Frama-c still reported the same error at the same location, even though the file was preprocessed correctly and the macro was correctly expanded! I invoked gcc as follows, for preprocessing: </p>
  
  <pre><code>gcc -E -C -I. -dD -nostdinc -D__FC_MACHDEP_X86_32 -I/usr/local/share/frama-c/libc
  </code></pre>
  
  <p>Any ideas?</p>