<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/128964>128964</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[HLSL] HLSLResourceBindingAttr is not added to `$Globals` default constant declarations
</td>
</tr>
<tr>
<th>Labels</th>
<td>
HLSL
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
hekota
</td>
</tr>
</table>
<pre>
`register(c#`) annotations on numeric constants in the global scope are not translated to `HLSLResourceBindingAttr`. This applies to scalar, vector and array constants.
For this code:
```
float a : register(c5);
[numthreads(4,1,1)]
void main() {
}
```
The AST should contain HLSLResourceBindingAttr added to the `VarDecl` for 'a' like this:
```
...
| |-VarDecl 0x#### <line:1:1, col:7> col:7 a 'hlsl_constant float'
| | `-HLSLResourceBindingAttr 0x#### <col:7> "c5" "space0"
...
```
https://godbolt.org/z/sfEcEEjK4
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0k09v4zYQxT_N6DKIQY3-WQcdHDtqge6pG_RajEjK4i5NGiQVdPvpC8rJOs0iAAkTBjlv3k_zOEZzdloP0DxCcyp4TYsPw6K_-8TF5NWPAVoR9NnEpAPQXgJV0AqgHtk5nzgZ7yJ6h2696GAkSu9iYpciGodp0Xi2fmKLUfqrRg4anU-YArtoOWmFySO04vcvX7_8qaNfg9SPxinjzoeUArRih8-LicjXqzU65utRsuUAdMQXLZMPyE4hh8A_7uo7EAcQh9EHTPm59EpDlf_K7d-WOMzWc0JGqA743mUD1EP1eKsBzaNbL2kJmlUE2tdAx_K2e2hOIA4v3ii8sHFA-4wGuu1pd_og97xoPHx9xrj41arcbGLj8BPvyErd-GSM0Iq_OJy0tNAKnH1AoI6BOrTmu95Mvvr7v-Zut6Hojgjd8eG1BIp_8od8WwjV0RqXAZXbpiNKb6E6dFA9vR0zJ-oWG-3fb5hxAwjU3SVyow-fOfpV9p0MEGXwlA_xylILILo7eOdpSem6uaURaDx7NXmbdj6cgcZ_gcY4P8mnp29_1IUaKtVXPRd6KLtatCV1ZV8sAzcVTzxRyWov2qriUop2nkohSIiZ68IMJKgRRC1VVdn0O9GQ6Pu-r_u5KmctoRb6wsburH25ZO3CxLjqoaR939aF5UnbuOWKKOPIXppTEYZ8_2FazxFqYU1M8V4hmWS3LG4PmtOnk2HilqKfA7JFsv5tS1rM86H0zKtNP_OASkvL4RbXYg12-MDQpGWddtJfgMbcz-vPwzX4b1omoHGzF4HGV4cvA_0XAAD__wZWSKU">