<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/56027>56027</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Compile error for void* return type with 32-bit pointer address space
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ararmine
</td>
</tr>
</table>
<pre>
Clang emits a compile error void * return type and void * parameter, when 32-bit pointer attribute is specified.
Steps to reproduce:
1. test.cpp
```
extern "C" void *malloc(size_t);
void * __ptr32 operator new[](size_t t, int foo) {
return malloc(t);
}
void operator delete[](void * __ptr32, int) {}
class node {
public:
node() {};
};
int main()
{
node* __ptr32 n3;
n3 = new(3) node[3];
}
```
2. running command
clang test.cpp -S -target x86_64-windows-msvc -fms-extensions
Output:
```
test.cpp:7:16: error: 'operator new[]' must return type 'void *'
void * __ptr32 operator new[](size_t t, int foo) {
^
test.cpp:11:6: error: first parameter of 'operator delete[]' must have type 'void *'
void operator delete[](void * __ptr32, int) {}
```
clang version - 14.0.0
Test case is compiled successfully with x86-64 msvc v.19.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVMGSmzAM_Rq4aGDAJpAcOOwm3WsP2_uOAZG4Y2zGNsluv76CEDak7fTQMmCMhfSe5GdVpvko90roI2AnvQMBtel6qRDQWmPhbGQDAXsCi36wGvxHjyB082nohRUderQB28PlhBo4iyrpoTdS0zII762sBo8gHbgea9lKbGIIkkOQPF3HV4-9A28IpremGWoM-GxKY_DofFz3_b1HkCfzPX3iO0FpIsT29CzsOqGUqQO2dfIHvvmA7QL-fB9mSePtrfeWMzA9WuEpc42XYPMcbA6LN_gxRUoKWmMoFATFHAvomgu0IK7BisMvqAtSg4rqt4A9UppBb4DrSLUSzoE2Da7Z9EOlZL0UEeZr_JEg7mLdM1yX5jqO6XZC6qvX7d87pGvIzwJqvsSZzBwCfpiqybZ8BJ4cNs98zPYP9XnY3OvIYrCD1pK0ShrtSIRLCWjpphGIXiHywh7Rw_s2f8uz6CJ1Yy4u6ty5hqjtXDSqRTtptLsH-Dr4fvBLzR5ILCLkTwU9aU7D9ZCMk4AVv1NOAd3g_Orw0OJth2n6v1V4dwWbL78wT1Ma1sxbaYnhcorBtKtk1uKc8zmJM_4lm39V97r41z0-ox03DSJIsziJZ9s3Sg9q4ab-MnevBtxQ1-hcOyj1ARfpT6MaojyDSQXnON3FYVPyZsd3IvTSKyz3q87Xzt3vsflNsR5bXNNYAqPuJmoMB6vKk_e9G6XEXug-ks9QxUSOPpQ6314RNbvvWFP2L9K5AR1NNnnCivBUCpa1Na8zXqQNS_K0aotiV2Q17jZJnm2bUIkKlSvHyjJGOoEpBM2p0KEsWcJGtyzZ8pSncZNs2irlhaiE2FVJGmQJ0rlW8cgjNvYY2nKiVA1HR0YlnXefRuoy8qgRy-tGhmLwJ2NLUo3tpMZwwi4n7j8Bqc3e4A">