title: Wrong clang-tidy warning about static global lambda variables?
body: <p>Provided the following code, in the global scope, clang-tidy gives no warning:</p>
  
  <pre><code>auto test = []{};
  </code></pre>
  
  <p>However, when doing the following, it does:</p>
  
  <pre><code>#include &lt;tuple&gt;
  
  auto test = []{
      std::tuple t{1, 2, 3};
  };
  </code></pre>
  
  <blockquote>
  <pre><code>&lt;source&gt;:3:6: warning: initialization of 'test' with static storage duration may throw an exception that cannot be caught [cert-err58-cpp]
  auto test = []{
       ^
  
  /opt/compiler-explorer/gcc-8.2.0/lib/gcc/x86_64-linux-gnu/8.2.0/../../../../include/c++/8.2.0/tuple:646:19: note: possibly throwing constructor declared here
          constexpr tuple(_UElements&amp;&amp;... __elements)
                    ^
  </code></pre>
  </blockquote>
  
  <p>Marking the lambda as <code>noexcept</code> doesn't help.</p>
  
  <p>However, I don't see why that would be a problem. The exception could only theorically happen when <em>invoking</em> the lambda, wouldn't it?</p>
  
  <p>The following code does not cause the warning to appear:</p>
  
  <pre><code>auto test = [] {
      throw 0;
  };
  </code></pre>
  
  <p>Is clang-tidy wrong, or did I miss something?</p>