<html>
<head>
<base href="https://bugs.llvm.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 - type mismatch in explicit template instantiate not detected"
href="https://bugs.llvm.org/show_bug.cgi?id=38205">38205</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>type mismatch in explicit template instantiate not detected
</td>
</tr>
<tr>
<th>Product</th>
<td>clang
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</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>enhancement
</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>zhonghao@pku.org.cn
</td>
</tr>
<tr>
<th>CC</th>
<td>dgregor@apple.com, llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>The code is as follow:
template<class T>
class A
{
static T a;
};
template<class T>
T A<T>::a;
class B
{ };
template
int A<B>::a; // type mismatch
clang++ accepts the code. The code should produce an error for the explicit
template instantiation, because the type given for the static variable
doesn't match the one in the class template. Please note that g++ rejects the
code:
error: type 'B' for explicit instantiation 'A<B>::a' does not match declared
type 'int'
int A<B>::a; // type mismatch</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>