<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </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 --- - Regression(r268727): clang-cl crashes parsing qos2.h"
   href="https://llvm.org/bugs/show_bug.cgi?id=27666">27666</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Regression(r268727): clang-cl crashes parsing qos2.h
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

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

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

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>C++
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>nicolasweber@gmx.de
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>dgregor@apple.com, llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Repro is:

  #include <qos2.h>


It reduces down to:

typedef struct in_addr {
  union {
    struct { unsigned char s_b1,s_b2,s_b3,s_b4; } S_un_b;
    struct { unsigned short s_w1,s_w2; } S_un_w;
    unsigned long S_addr;
  } S_un;
} IN_ADDR;

__inline void f(const IN_ADDR __unaligned *a) {
  IN_ADDR local_addr = *a;
}

C:\src\llvm-build>bin\clang-cl /c small.cc
small.cc(20,13) :  error: no matching constructor for initialization of
'IN_ADDR' (aka 'in_addr')
    IN_ADDR Ipv4Address = *a;
            ^             ~~
Assertion failed: CVR && "unexpected qualifiers mismatch", file
C:\src\llvm-rw\tools\clang\lib\Sema\SemaOverload.cpp, li
ne 9118
Could not write crash dump file: permission denied
#0 0x000000014089de45 (C:\src\llvm-build\bin\clang-cl.exe+0xf6de45)
#1 0x000007feef79ee1d raise (C:\Windows\system32\MSVCR120.dll+0x6ee1d)
#2 0x000007feef7a4a14 abort (C:\Windows\system32\MSVCR120.dll+0x74a14)
#3 0x000007feef7a5d14 _wassert (C:\Windows\system32\MSVCR120.dll+0x75d14)
#4 0x0000000141855e50 (C:\src\llvm-build\bin\clang-cl.exe+0x1f25e50)
#5 0x0000000141861f31 (C:\src\llvm-build\bin\clang-cl.exe+0x1f31f31)
#6 0x000000014186186d (C:\src\llvm-build\bin\clang-cl.exe+0x1f3186d)
#7 0x000000014180e696 (C:\src\llvm-build\bin\clang-cl.exe+0x1ede696)
#8 0x0000000141813759 (C:\src\llvm-build\bin\clang-cl.exe+0x1ee3759)
#9 0x00000001414e3047 (C:\src\llvm-build\bin\clang-cl.exe+0x1bb3047)
#10 0x00000001412ea695 (C:\src\llvm-build\bin\clang-cl.exe+0x19ba695)
#11 0x00000001412e944d (C:\src\llvm-build\bin\clang-cl.exe+0x19b944d)
#12 0x00000001412f7401 (C:\src\llvm-build\bin\clang-cl.exe+0x19c7401)
#13 0x00000001412e9c58 (C:\src\llvm-build\bin\clang-cl.exe+0x19b9c58)
#14 0x00000001413340bb (C:\src\llvm-build\bin\clang-cl.exe+0x1a040bb)
#15 0x0000000141333901 (C:\src\llvm-build\bin\clang-cl.exe+0x1a03901)
#16 0x000000014132ef0d (C:\src\llvm-build\bin\clang-cl.exe+0x19fef0d)


(note: both error, and crash)</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>