<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 - Regression in a29aa47106205ec95c12e0ebac4260c5de878a6a [OpenCL] Move addr space deduction to Sema."
href="https://bugs.llvm.org/show_bug.cgi?id=44176">44176</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Regression in a29aa47106205ec95c12e0ebac4260c5de878a6a [OpenCL] Move addr space deduction to Sema.
</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>OpenCL
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedclangbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>drohr@jwdt.org
</td>
</tr>
<tr>
<th>CC</th>
<td>anastasia.stulova@arm.com, llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>Created <span class=""><a href="attachment.cgi?id=22879" name="attach_22879" title="Test case failing to compile">attachment 22879</a> <a href="attachment.cgi?id=22879&action=edit" title="Test case failing to compile">[details]</a></span>
Test case failing to compile
The attached example, that was compiling correctly before
a29aa47106205ec95c12e0ebac4260c5de878a6a, fails to compile with
a29aa47106205ec95c12e0ebac4260c5de878a6a with the command line
clang++ -cl-std=clc++ -x cl -emit-llvm --target=spir64-unknown-unknown
-cl-denorms-are-zero -cl-mad-enable -cl-no-signed-zeros -ferror-limit=1000
-Xclang -finclude-default-header -Dcl_clang_storage_class_specifiers
-Wno-invalid-constexpr -c test.cl -o test.bc
with the following errors
../Merger/GPUTPCGMPolynomialField.h:226:27: error: cannot initialize a
parameter of type 'float *' with an lvalue of type 'float [20]'
GetPolynomsTrd(x, y, z, f);
^
../Merger/GPUTPCGMPolynomialField.h:198:86: note: passing argument to parameter
'f' here
inline void GPUTPCGMPolynomialField::GetPolynomsTrd(float x, float y, float z,
float f[NTRDM])
^
../Merger/GPUTPCGMPolynomialField.h:241:27: error: cannot initialize a
parameter of type 'float *' with an lvalue of type 'float [20]'
GetPolynomsTrd(x, y, z, f);
^
../Merger/GPUTPCGMPolynomialField.h:198:86: note: passing argument to parameter
'f' here
inline void GPUTPCGMPolynomialField::GetPolynomsTrd(float x, float y, float z,
float f[NTRDM])
^
In file included from ../Base/opencl-common/GPUReconstructionOCL.cl:63:
In file included from ../Base/GPUReconstructionIncludesDevice.h:50:
../Merger/GPUTPCGMPropagator.cxx:59:64: error: cannot initialize a parameter of
type 'float *' with an lvalue of type 'float [3]'
mField->GetFieldIts(X * cs - Y * sn, X * sn + Y * cs, Z, bb);
^~
../Merger/GPUTPCGMPolynomialField.h:269:83: note: passing argument to parameter
'B' here
inline void GPUTPCGMPolynomialField::GetFieldIts(float x, float y, float z,
float B[3]) const
^
In file included from ../Base/opencl-common/GPUReconstructionOCL.cl:63:
In file included from ../Base/GPUReconstructionIncludesDevice.h:50:
../Merger/GPUTPCGMPropagator.cxx:62:64: error: cannot initialize a parameter of
type 'float *' with an lvalue of type 'float [3]'
mField->GetFieldTrd(X * cs - Y * sn, X * sn + Y * cs, Z, bb);
^~
../Merger/GPUTPCGMPolynomialField.h:223:83: note: passing argument to parameter
'B' here
inline void GPUTPCGMPolynomialField::GetFieldTrd(float x, float y, float z,
float B[3]) const
^
In file included from ../Base/opencl-common/GPUReconstructionOCL.cl:63:
In file included from ../Base/GPUReconstructionIncludesDevice.h:50:
../Merger/GPUTPCGMPropagator.cxx:66:61: error: cannot initialize a parameter of
type 'float *' with an lvalue of type 'float [3]'
mField->GetField(X * cs - Y * sn, X * sn + Y * cs, Z, bb);
^~
../Merger/GPUTPCGMPolynomialField.h:167:80: note: passing argument to parameter
'B' here
inline void GPUTPCGMPolynomialField::GetField(float x, float y, float z, float
B[3]) const
^
In file included from ../Base/opencl-common/GPUReconstructionOCL.cl:63:
In file included from ../Base/GPUReconstructionIncludesDevice.h:50:
../Merger/GPUTPCGMPropagator.cxx:87:31: error: cannot initialize a parameter of
type 'float *' with an lvalue of type 'float [3]'
GetBxByBz(Alpha, X, Y, Z, B);
^
../Merger/GPUTPCGMPropagator.cxx:31:89: note: passing argument to parameter 'B'
here
void GPUTPCGMPropagator::GetBxByBz(float Alpha, float X, float Y, float
Z, float B[3]) const
^
../Merger/GPUTPCGMPropagator.cxx:159:47: error: cannot initialize a parameter
of type 'float *' with an lvalue of type 'float [3]'
GetBxByBz(newAlpha, t0.X(), t0.Y(), t0.Z(), B);
^
../Merger/GPUTPCGMPropagator.cxx:31:89: note: passing argument to parameter 'B'
here
void GPUTPCGMPropagator::GetBxByBz(float Alpha, float X, float Y, float
Z, float B[3]) const
^
../Merger/GPUTPCGMPropagator.cxx:287:48: error: cannot initialize a parameter
of type 'float *' with an lvalue of type 'float [3]'
GetBxByBz(mAlpha, mT0.X(), mT0.Y(), mT0.Z(), B);
^
../Merger/GPUTPCGMPropagator.cxx:31:89: note: passing argument to parameter 'B'
here
void GPUTPCGMPropagator::GetBxByBz(float Alpha, float X, float Y, float
Z, float B[3]) const
^
../Merger/GPUTPCGMPropagator.cxx:900:48: error: cannot initialize a parameter
of type 'float *' with an lvalue of type 'float [3]'
GetBxByBz(mAlpha, mT0.X(), mT0.Y(), mT0.Z(), B);
^
../Merger/GPUTPCGMPropagator.cxx:31:89: note: passing argument to parameter 'B'
here
void GPUTPCGMPropagator::GetBxByBz(float Alpha, float X, float Y, float
Z, float B[3]) const
^
In file included from ../Base/opencl-common/GPUReconstructionOCL.cl:63:
In file included from ../Base/GPUReconstructionIncludesDevice.h:74:
../TRDTracking/GPUTRDTracker.cxx:658:49: error: cannot initialize a parameter
of type 'const o2::gpu::My_Float *' (aka 'const float *') with an lvalue of
type 'o2::gpu::My_Float [2]'
float chi2 = prop->getPredictedChi2(trkltPosTmpYZ, trkltCovTmp);
^~~~~~~~~~~~~
../TRDTracking/GPUTRDInterfaces.h:264:48: note: passing argument to parameter
'p' here
float getPredictedChi2(const My_Float p[2], const My_Float cov[3])
const { return PredictChi2(p[0], p[1], cov[0], cov[2]); }
^
In file included from ../Base/opencl-common/GPUReconstructionOCL.cl:63:
In file included from ../Base/GPUReconstructionIncludesDevice.h:74:
../TRDTracking/GPUTRDTracker.cxx:798:25: error: cannot initialize a parameter
of type 'const o2::gpu::My_Float *' (aka 'const float *') with an lvalue of
type 'o2::gpu::My_Float [2]'
if (!prop->update(trkltPosUp, trkltCovUp)) {
^~~~~~~~~~
../TRDTracking/GPUTRDInterfaces.h:257:37: note: passing argument to parameter
'p' here
bool update(const My_Float p[2], const My_Float cov[3])</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>