<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><span class="vcard"><a class="email" href="mailto:richard-llvm@metafoo.co.uk" title="Richard Smith <richard-llvm@metafoo.co.uk>"> <span class="fn">Richard Smith</span></a>
</span> changed
          <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED INVALID - Incorrect error on static_assert expression"
   href="https://bugs.llvm.org/show_bug.cgi?id=43990">bug 43990</a>
          <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>INVALID
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>RESOLVED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED INVALID - Incorrect error on static_assert expression"
   href="https://bugs.llvm.org/show_bug.cgi?id=43990#c1">Comment # 1</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED INVALID - Incorrect error on static_assert expression"
   href="https://bugs.llvm.org/show_bug.cgi?id=43990">bug 43990</a>
              from <span class="vcard"><a class="email" href="mailto:richard-llvm@metafoo.co.uk" title="Richard Smith <richard-llvm@metafoo.co.uk>"> <span class="fn">Richard Smith</span></a>
</span></b>
        <pre>This is a GCC bug (though one we see filed quite a lot; the language rules seem
to not match people's intuition here).

The evaluation semantics of the expression 'x' (because it's of reference type)
involve locating the object that the reference binds to, which can't be done in
this case because we don't know the value of the function parameter 'x'. So the
evaluation of the static_assert condition is non-constant, which is invalid.

In case you're interested, this is the language rule that's violated here: 
<a href="http://eel.is/c++draft/expr.const#4.12">http://eel.is/c++draft/expr.const#4.12</a></pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>