<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - ast.h:648:16: error: union member 'i' has a non-trivial constructor"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=105238">105238</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>ast.h:648:16: error: union member 'i' has a non-trivial constructor
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>git
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>x86-64 (AMD64)
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Keywords</th>
          <td>bisected, regression
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Mesa core
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>vlee@freedesktop.org
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>currojerez@riseup.net, plamena.manolova@intel.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>In file included from ./glsl/glsl_lexer.ll:27:
../../src/compiler/glsl/ast.h:648:16: error: union member 'i' has a non-trivial
constructor
      bitset_t i;
               ^

commit ba79a90fb52e1e81fbfb38113e85a56b13497c50
Author: Francisco Jerez <<a href="mailto:currojerez@riseup.net">currojerez@riseup.net</a>>
Date:   Mon Feb 12 14:18:15 2018 -0800

    glsl: Switch ast_type_qualifier to a 128-bit bitset.

    This should end the drought of bits in the ast_type_qualifier object.
    The bitset_t type works pretty much as a drop-in replacement for the
    current uint64_t bitset.

    The only catch is that the bitset_t type as defined in the previous
    commit doesn't have a trivial constructor (because it has a
    user-defined constructor), so it cannot be used as union member
    without providing a user-defined constructor for the union (which
    causes it in turn to be non-trivially constructible).  This annoyance
    could be easily addressed in C++11 by declaring the default
    constructor of bitset_t to be the implicitly defined one -- IMO one
    more reason to drop support for GCC 4.2-4.3.

    The other minor change was required because glsl_parser_extras.cpp was
    hard-coding the type of bitset temporaries as uint64_t, which (unlike
    would have been the case if the uint64_t had been replaced with
    e.g. an __int128) would otherwise have caused a build failure, because
    the boolean conversion operator of bitset_t is marked explicit (if
    C++11 is available), so the bitset won't be silently truncated down to
    1 bit in order to use it to initialize the uint64_t temporaries
    (yikes).

    Reviewed-by: Plamena Manolova <<a href="mailto:plamena.manolova@intel.com">plamena.manolova@intel.com</a>></pre>
        </div>
      </p>


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

      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>