title: Spurious warning gcc -Wuninitialized
body: <p>OS:  Debian 9</p>
  
  <p>compiler:  gcc 8.2.0 (installed from buster (testing) repository)</p>
  
  <p>I know that using things from debian testing branch is dangerous, but debian testing is <em>usually stable</em>, and gcc 8.2 has been released as stable, so it shouldn't have many bugs.</p>
  
  <p>in this function:</p>
  
  <pre><code>int user_tui        (const char *title, const char *subtitle)
  {
      int action;
  //  action  = USER_IFACE_ACT_FOO;
  
      show_help();
      user_tui_show_log(title, subtitle);
      action  = usr_input();
  
      return  action;
  }
  </code></pre>
  
  <p>It is reporting the following error (<code>-Wall -Werror</code> and also <code>-O3 -march=native</code>):</p>
  
  <pre><code>/.../modules//user//src//user_tui.c: In function ‘user_tui’:
  /.../modules//user//src//user_tui.c:91:9: error: ‘action’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
    return action;
           ^~~~~~
  cc1: all warnings being treated as errors
  </code></pre>
  
  <p>When I uncomment the initialization, the error is still there.  I think it shouldn't even be needed, as there is no conditional or anything that would ever block the assignment <code>action = usr_input();</code>.</p>
  
  <p>Is it a spurious warning, or is it legit?</p>
  
  <p>I would say it is a bug in gcc;  it can't even be considered spurious.</p>