<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55376>55376</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Checking whether clang++ supports C++17 features failed
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
huxiaoheng44
</td>
</tr>
</table>
<pre>
Here is a case generated when I compiled an application called moose with LLVM at the stage of configure, more specifically, Checking whether clang++ supports C++17 features. I extracted the codes raised the error.
```
//test.cpp
#include <initializer_list>
#include <utility>
#include <type_traits>
namespace test_structured_bindings
{
int arr[2] = { 1, 2 };
std::pair<int, int> pr = { 1, 2 };
auto f1() -> int(&)[2]
{
return arr;
}
auto f2() -> std::pair<int, int>&
{
return pr;
}
struct S
{
int x1 : 2;
volatile double y1;
};
S f3()
{
return {};
}
auto [ x1, y1 ] = f1();
auto& [ xr1, yr1 ] = f1();
auto [ x2, y2 ] = f2();
auto& [ xr2, yr2 ] = f2();
const auto [ x3, y3 ] = f3();
}
```
### step to reproduce the error
**For debug version**
> clang++ -c -std=gnu++17 -g test.cpp
**For Release Version**
> clang++ -S -std=gnu++17 -g -emit-llvm -o test.ll
> opt -verify test.ll
```
test.ll:1268:175: error: missing required field 'name'
!140 = distinct !DIGlobalVariable(linkageName: "_ZN5cxx1724test_structured_bindingsDC2x12y1EE", scope: !81, file: !4, line: 742, type: !82, isLocal: false, isDefinition: true)
```
**Note** : the LLVM release version enables option `-disable-llvm-verifier`, thus bypassing the verification of IR. However, the problem still exists.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydVk1v4zgM_TXOhUhgy3GcHHJom3anQLeHKTCHvRSyTTvaUSyvJLfJ_vol5aT5aDsdbCBEFk3yUST15MJUu-U3tAjKgYRSOoQGW7TSYwWva2zhHkqz6ZSmtWxBdp1WpfTKtKStWboxhqxelV_Dw8OPP0F68GsE52WDYGoyb2vV9BYjcUPKhOU6LFWt2H7Hwps1lj9V2zAgmVootWybSFzTANd3nbHewc0gSHKoUXry5yYUHG69lSVHy6ClqdCBlcrtBWitsZMoXkXxVTSL92NYijsaHp2flF13kKWqLXVfIUTpjWqVV1Krf9E-a-V8lN5-pNZ7pZXfffLW7zp8phiVd0eN8N_KDbpOlggcxLPzti95X9VzodqK8uEGPYAovz41BPqp1oO0NsquRZStCGjFWpBwPgU9rqL0-qjtfBWlVzQ6qWzYmWdFntJb6Oyv7I9eZO8N1KQyj8QCxmwaHNFyRpJ9LEf9t7Ah_CzS7toQ9WlsjPUhkDgF-uUOGP8L1O5L0CH_8PSpJ075NqFUXYE4cwbwYjSdCY1Qmb6gaZe8Q3ufzieo02GLXwXP0ouKfpY1KgIFyanZUaj7zjjU7MwDq1PiBgs7mNjfsBkMRNAXR3XxJcRgYr-wIbpw_gQoDVbp0Si9MDoekrOMvDvt6TC40NgBubfYWVP1fP4OTHHQ5XFnLFRY9A28oHVEeIP4DIMa85SrxiWMQ6OumrZ_o6txAxcsc4HyHTUy8_74bZynT3DGuFF-rPXLBsZmQNX60pPpPIxpT6refahynriDRnqViNmcpzzjIzDkix42yjkmb4v_9IrYC2qFuoJI5ExwNB22myTTOJSwIi4lhvSkk6zu_9CmkPqHtErS0aHiatX-pLvjka3JfyTE81-PWbndJrmYfkaVqxuxTcQuuSUyCI3mStPt7ZN56O6aDuheMOU14YR1Pg0GTNQH_SBQ7sHQHcWyWmqHg2yFdbgXqE70ggLBtwN82XInZX40HoenwB_ccOGytPvS71sMsOUkOK4RL4GcjSldLAxlHeqm0DIKB73uHRS7Tg41YL-Dxv6Opvv3_vsEvplXJPlggUSGhhxu6CQorekKpXq4yVnQJ_-japlWi3QhR155jcv_e1tTEvkrYtRbvVx73znm83AHN_Tt0BcT-s6gBe9yP40pzr-xJKK_ox7r0dFDlqX5bLReljibzxZpIRZZPJtV-TSWcl4vijor6qpMkpGWBWq3JA6hhmjxFYILbo5sNVJLEQsRZ0kS58k0SSepQBFX2Syfzqssr-fRNMYNxTvhOCbGNiO7DCERHzh6qUPK3l5y-psWMcCRf6KvtbHLdb9V0tBXVDOdjgL-MsT_H96brRY">