<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63563>63563</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-cl does not support concatenation of predefined identifiers
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
RIscRIpt
</td>
</tr>
</table>
<pre>
According to [MSDN](https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros) `__FUNCDNAME__`, `__FUNCSIG__`, and `__FUNCTION__` are non-expandible macros defined as string literals. So, they may be concatenated with other string literals ([Compiler Explorer link](https://godbolt.org/z/eM9P1crMz)):
```cpp
extern "C" int printf(const char*, ...);
void F() {
printf("Function name: " __FUNCTION__ "\n");
printf("Decorated function name: " __FUNCDNAME__ "\n");
printf("Function signature: " __FUNCSIG__ "\n");
}
```
Currently clang in ms-compatible mode does not support this.
Relevant issue: #12161
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMlEFv6zYMxz-NfCFi2HScOAcf0uR56KHd0G7nQpbpWJssGRLd175PP8g1XopsBR4gWDAF_kj-RUqGoC-WqBblnSjPiZx5cL5-ug_q6X7ipHXde31UyvlO2wuwA1HePTyfH0V5FlgNzFMQxVFgI7AxJL1NR628C67nVLlRYEN2MweBjZomgc3kafJOUQjOf_x21GtL3WaU0U_gAcQue3lp_no8nR-PD99eXsQuE3i6mp_vf_tplLa7Hvx5__vjcgLSE1hnN_Q2Sdvp1hB88GENBzJAYB-LMprJSxNSeHYRyQO9wyjfoSVQzirJZCVTB981D-B4IH_rCgIrUd6d3DhpQx6-vU3GefJgtP3n_6S6uK51hlPnLwKbH1Gmh8MfufIPPwQe4iqOIjuL7BjrXFbUb7HQG5O3IBBPAhG0ZZi8ttwLrJSzgUEN0gs8xmLSNF1odytt-b463UETc45q79czALiCBGIzW8XaWbByJFEcY0T4LHQ0iPJk4_Ypxi3nTMr5RcD-a-J61b-I_Jla7F7Js7-hLR3yBUvszzfKfpbmNHtPls07KCPtBbSFMWyUGyfJH23kOoLOUQDrGMI8Tc4z8KBD-pnzRIZepWXQIcxrdkWO-S5PurroDsVBJlTnu2pfHfYVZslQqwoPu22p8lLut5hv8ZD3mczLfdaWRd8Wia4xwyLb4R6zIsurtC-ytqsy7HFf9mXeim1Go9QmNeZ1jL2VLNHrXVHuisTIlkxYJh3R0vc1tSjSOfF19Nm08yWIbWZ04HClsGZD9SLIRpn_Vn-dkngnrofrWIPuyLLuNfmQzN7UN3OgeZjb9aWI8dZtM3n3NykW2CxZxgdkqeLfAAAA__85ZnAj">