title: Inconsistent storage class specifiers on functions
body: <p>I have</p>
  
  <pre><code>static void static_func(void);
  void static_func(void) { }
  static inline void static_inline_func(void);
  void static_inline_func(void) { }
  
  #if 0 //error
      void extern_func(void){}
      static void extern_func(void);
  #endif
  
  int main()
  {
      static_func();
      static_inline_func();
  }
  </code></pre>
  
  <p>I was expecting warnings or errors but neither gcc nor clang are making any, even with <code>-Wall -Wextra -pedantic</code>.</p>
  
  <p>Is this conformant C? Why or why not?</p>