title: __attribute__((always_inline)) failing
body: <p>I wonder if some one can shed some light on this. I got a header file with a few <code>always_inline</code> methods, which gets included several places. Since I upgraded the OS (Debian Wheezy) with a newer version of gcc 4.7.1 I am getting a load of warnings on failing inlines. I am able to compile this successfully on gcc 4.4.5 (Debian Squeezy). Compile command I am using is</p>
  
  <pre><code>gcc -g -Wall -O0 -o [prog_name] [sources].c -l[link libraries]
  </code></pre>
  
  <p>Code:</p>
  
  <pre><code>#ifndef __MCIDSHEADER_H__
  #define __MCIDSHEADER_H__
  
  #include &lt;stdlib.h&gt;
  
  /* C functions */
  #ifdef __cplusplus
  extern "C" {
  #endif
  
      /* Constructor and destructor */
      mcidsheader* mcidsheader_new(mcidsheader* obj, sqlite3* ids, crSettings* settings);
      void mcidsheader_delete(mcidsheader* obj);
  
  /* set schedule number */
  __attribute__ ((always_inline)) static int mcidsheader_set_schedno(mcidsheader* obj, unsigned int var)
  {
      MC_CHK_OBJ(obj);
      obj-&gt;var_sched_no = var;
      /* memset schedule number */
      memset(obj-&gt;var_sched, 0, MCIDSHEADER_SCHEDNUM_SZ);
      /* copy to local */
      sprintf(obj-&gt;var_sched, "%i", var);
      obj-&gt;var_flg = 0;
      return 0;
  }
  
  /* Get schedule number */
  __attribute__ ((always_inline)) static const char* mcidsheader_get_schedno(const mcidsheader* obj)
  {
      MC_CHK_OBJ_PTR(obj);
      return obj-&gt;var_sched;
  }
  
  /* set job number */
  __attribute__ ((always_inline)) static int mcidsheader_set_jobnumber(mcidsheader* obj, const char* var)
  {
      MC_CHK_OBJ(obj);
  
      /* memset buff */
      memset(obj-&gt;var_jobnumber, 0, MCIDSHEADER_JOBNUMBER_SZ);
      MC_CHK_OBJ(var);
      /* copy to local */
      strcpy(obj-&gt;var_jobnumber, var);
      obj-&gt;var_flg = 0;
      return 0;
  }
  
  /* get job number */
  __attribute__ ((always_inline)) static const char* mcidsheader_get_jobnumber(const mcidsheader* obj)
  {
      MC_CHK_OBJ_PTR(obj);
      return obj-&gt;var_jobnumber;
  }
  
  /* set project */
  __attribute__ ((always_inline)) static int mcidsheader_set_project(mcidsheader* obj, const char* var)
  {
      MC_CHK_OBJ(obj);
  
      /* memset buff */
      memset(obj-&gt;var_project, 0, MCIDSHEADER_PROJECT_SZ);
      MC_CHK_OBJ(var);
  
      /* copy to local */
      strcpy(obj-&gt;var_project, var);
      obj-&gt;var_flg = 0;
      return 0;
  }
  
  /* Get project name */
  __attribute__ ((always_inline)) static const char* mcidsheader_get_project(const mcidsheader* obj)
  {
      MC_CHK_OBJ_PTR(obj);
      return obj-&gt;var_project;
  }
  
  /* Set client */
  __attribute__ ((always_inline)) static int  mcidsheader_set_client(mcidsheader* obj, const char* var)
  {
      MC_CHK_OBJ(obj);
  
      /* memset buff */
      memset(obj-&gt;var_client, 0, MCIDSHEADER_CLIENT_SZ);
      MC_CHK_OBJ(var);
  
      /* copy to local */
      strcpy(obj-&gt;var_client, var);
      obj-&gt;var_flg = 0;
      return 0;
  }
  
  /* get client */
  __attribute__ ((always_inline)) static const char* mcidsheader_get_client(const mcidsheader* obj)
  {
      MC_CHK_OBJ(obj);
      return obj-&gt;var_client;
  }
  
  /* set date */
  __attribute__ ((always_inline)) static int mcidsheader_set_date(mcidsheader* obj, const char* var)
  {
      MC_CHK_OBJ(obj);
      /* memset buff */
      memset(obj-&gt;var_date, 0, MCIDSHEADER_DATE_SZ);
      MC_CHK_OBJ(var);
      /* copy to local */
      strcpy(obj-&gt;var_date, var);
      obj-&gt;var_flg = 0;
      return 0;
  }
  
  /* get date */
  __attribute__ ((always_inline)) static const char* mcidsheader_get_date(const mcidsheader* obj)
  {
      MC_CHK_OBJ_PTR(obj);
      return obj-&gt;var_date;
  }
  
  /* Get struct size */
  __attribute__ ((always_inline)) static unsigned int mcidsheader_get_size(const mcidsheader* obj)
  {
      if(!obj) return 0;
      return obj-&gt;var_size;
  }
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif /* __MCIDSHEADER_H__ */
  </code></pre>