<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 - Crash with invalid cast inside vector literal"
href="https://bugs.llvm.org/show_bug.cgi?id=33897">33897</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Crash with invalid cast inside vector literal
</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>All
</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>OpenCL
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedclangbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>J.Price@bristol.ac.uk
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=18835" name="attach_18835" title="Stack trace">attachment 18835</a> <a href="attachment.cgi?id=18835&action=edit" title="Stack trace">[details]</a></span>
Stack trace
The following code causes Clang/Sema to hit an `llvm_unreachable` with message
'illegal cast from pointer':
kernel void A(global float* b)
{
(float4)(b);
}
This only happens when using the single element form of the vector literal.
Other forms produce the correct diagnostic ("initializing 'float' with an
expression of incompatible type ...").
There's a special case for this single element form (SemaExpr.cpp line 6083),
but it doesn't seem to validate the types before calling PrepareScalarCast(),
which assumes the inputs are valid.
Full stack trace attached.</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>