<html>
<head>
<base href="https://llvm.org/bugs/" />
</head>
<body><span class="vcard"><a class="email" href="mailto:rnk@google.com" title="Reid Kleckner <rnk@google.com>"> <span class="fn">Reid Kleckner</span></a>
</span> changed
<a class="bz_bug_link
bz_status_REOPENED "
title="REOPENED --- - Assertion failed: Layout && "Unable to find record layout information for type" due to PCH re-entrancy into CodeGen"
href="https://llvm.org/bugs/show_bug.cgi?id=27445">bug 27445</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;">Status</td>
<td>RESOLVED
</td>
<td>REOPENED
</td>
</tr>
<tr>
<td style="text-align:right;">CC</td>
<td>
</td>
<td>rnk@google.com
</td>
</tr>
<tr>
<td style="text-align:right;">Resolution</td>
<td>WONTFIX
</td>
<td>---
</td>
</tr>
<tr>
<td style="text-align:right;">Summary</td>
<td>Regression(266932:266938): Assertion failed: Layout && "Unable to find record layout information for type" when building chromium with clang-cl
</td>
<td>Assertion failed: Layout && "Unable to find record layout information for type" due to PCH re-entrancy into CodeGen
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_REOPENED "
title="REOPENED --- - Assertion failed: Layout && "Unable to find record layout information for type" due to PCH re-entrancy into CodeGen"
href="https://llvm.org/bugs/show_bug.cgi?id=27445#c6">Comment # 6</a>
on <a class="bz_bug_link
bz_status_REOPENED "
title="REOPENED --- - Assertion failed: Layout && "Unable to find record layout information for type" due to PCH re-entrancy into CodeGen"
href="https://llvm.org/bugs/show_bug.cgi?id=27445">bug 27445</a>
from <span class="vcard"><a class="email" href="mailto:rnk@google.com" title="Reid Kleckner <rnk@google.com>"> <span class="fn">Reid Kleckner</span></a>
</span></b>
<pre>Nico's reproduction:
Standalone:
C:\src\chrome\src>type header.h
namespace std {
struct type_info {
size_t hash_code() const { return 0; }
virtual ~type_info();
};
}
C:\src\chrome\src>type empty.cc
C:\src\chrome\src>type repro.cc
class Params;
struct __declspec(dllexport) Visitor {
void OnReceiveConnectionState(const Params& params) {}
};
class __declspec(dllexport) Params {
void operator=(const Params&);
void (*on_arena_allocation)(const std::type_info* allocated_type);
int field() const { return field_; }
int field_;
};
C:\src\chrome\src>..\..\llvm-build-relsym\bin\clang-cl /c empty.cc /FIheader.h
/Ycheader.h -fmsc-version=1900 /Fpfoo.pch
C:\src\chrome\src>..\..\llvm-build-relsym\bin\clang-cl /c repro.cc /FIheader.h
/Yuheader.h -fmsc-version=1900 /Fpfoo.pch
Assertion failed: Layout && "Unable to find record layout information for
type", file C:\src\llvm-rw\tools\clang\lib\CodeGen\CodeGenTypes.cpp, line 734
We should be able to fix this by putting in a HandlingTopLevelDeclRAII object
in HandleTagDeclDefinition.</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>