title: Why does MSVS static analyzer ignore _Check_return_?
body: <p>What is the correct way to annotate a function with <code>_Check_return_</code>?<br>
  In the following example static analyzer produces only one warning instead of two:</p>
  
  <pre><code>_Check_return_ int foo()
  {
      return 42;
  }
  
  _Check_return_ std::string bar()
  {
      return std::string();
  }
  
  int main()
  {
      foo(); // Return value ignored
      bar(); // No warning
  
      return 0;
  }
  </code></pre>
  
  <p>Tested on MSVS 2015 Update 3.</p>