<html>
<head>
<base href="http://llvm.org/bugs/" />
</head>
<body><span class="vcard"><a class="email" href="mailto:hans@chromium.org" title="Hans Wennborg <hans@chromium.org>"> <span class="fn">Hans Wennborg</span></a>
</span> changed
<a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED INVALID - dllexport instantiates all member functions of all member variables of a class"
href="http://llvm.org/bugs/show_bug.cgi?id=20782">bug 20782</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>NEW
</td>
<td>RESOLVED
</td>
</tr>
<tr>
<td style="text-align:right;">Resolution</td>
<td>---
</td>
<td>INVALID
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED INVALID - dllexport instantiates all member functions of all member variables of a class"
href="http://llvm.org/bugs/show_bug.cgi?id=20782#c5">Comment # 5</a>
on <a class="bz_bug_link
bz_status_RESOLVED bz_closed"
title="RESOLVED INVALID - dllexport instantiates all member functions of all member variables of a class"
href="http://llvm.org/bugs/show_bug.cgi?id=20782">bug 20782</a>
from <span class="vcard"><a class="email" href="mailto:hans@chromium.org" title="Hans Wennborg <hans@chromium.org>"> <span class="fn">Hans Wennborg</span></a>
</span></b>
<pre>(In reply to <a href="show_bug.cgi?id=20782#c4">comment #4</a>)
<span class="quote">> Sorry, I read the example too fast; BlobData::operator= should not be
> deleted, but defining it should result in a hard error.</span >
It sounds like we don't have a bug here. I also just tried this with VS 14 CTP,
and that errors in the same way that we do.
<span class="quote">> What horrible things
> is MSVC doing to make this work? Maybe they try to define it within some
> kind of global error trap. *shudder*</span >
In VS2012 and 2013, they synthesize the copy assignment operators, disregarding
the constness of BlobDataItem::a_.
In fact, they seem to do that in general. In VS2012 and 2013, this is an error:
enum E { one, two };
struct S {
const E x;
};
void f(S& s, S& t) {
s = t;
}
But this compiles:
struct S {
const enum { one, two } x;
};
void f(S& s, S& t) {
s = t;
}</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>