<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/109139>109139</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Crash with macro formatting inside of double namespaces with NamespaceIndentation and CompactNamespaces
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
TIMONz1535
</td>
</tr>
</table>
<pre>
I am using the latest **Visual Studio Community 2022 - 17.11.4** clang binaries **17.0.3.0** for file formatting on Windows 11 23H2 22631.4169
Command line:
`"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/Llvm/x64/bin/clang-format.exe" --style=file clang_crash.hlsli`
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/Llvm/x64/bin/clang-format.exe" --style=file clang_crash.hlsli
Exception Code: 0xC0000005
0x00007FF64B4B702C, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-format.exe(0x00007FF64B3C0000) + 0xF702C byte(s)
0x00007FF64B4B51C6, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-format.exe(0x00007FF64B3C0000) + 0xF51C6 byte(s)
0x00007FF64B4B4AB5, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-format.exe(0x00007FF64B3C0000) + 0xF4AB5 byte(s)
0x00007FF64B41BD10, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-format.exe(0x00007FF64B3C0000) + 0x5BD10 byte(s)
0x00007FF64B4854D1, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-format.exe(0x00007FF64B3C0000) + 0xC54D1 byte(s)
0x00007FF64B42EED7, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-format.exe(0x00007FF64B3C0000) + 0x6EED7 byte(s)
0x00007FF64B411462, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-format.exe(0x00007FF64B3C0000) + 0x51462 byte(s)
0x00007FF64B413E89, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-format.exe(0x00007FF64B3C0000) + 0x53E89 byte(s)
0x00007FF64B3C572D, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-format.exe(0x00007FF64B3C0000) + 0x572D byte(s)
0x00007FF64B3C39B6, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-format.exe(0x00007FF64B3C0000) + 0x39B6 byte(s)
0x00007FF64B570F40, C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-format.exe(0x00007FF64B3C0000) + 0x1B0F40 byte(s)
0x00007FF8F0A1257D, C:\Windows\System32\KERNEL32.DLL(0x00007FF8F0A00000) + 0x1257D byte(s), BaseThreadInitThunk() + 0x1D byte(s)
0x00007FF8F21AAF28, C:\Windows\SYSTEM32\ntdll.dll(0x00007FF8F2150000) + 0x5AF28 byte(s), RtlUserThreadStart() + 0x28 byte(s)
```
I have a macro inside two namespaces, and the most important thing - before the macro is a comment without indentation. If you delete one namespace, or delete a comment, or add a tab in front of comment, there will be no crash
```hlsl
namespace TextureSet {
namespace Tools {
// TODO: template <typename T> in HLSL 2021
#define NormalizeTest_TEMPLATE(T) \
T NormalizeTest(const in T value) \
{ \
return value - (1.0f / 128.0f) * value * (1.0f - value); \
}
}}
```
.clang-format
```
---
BasedOnStyle: Chromium
NamespaceIndentation: All
CompactNamespaces: 'true'
...
```
[file_and_config.zip](https://github.com/user-attachments/files/17044745/file_and_config.zip)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMmN9v4roSx_8a8zIiip2YkAceIBBtdWm7Wrh7dZ8qJ3GIzzo2sp3-2L_-yAmlwPYU6TyBKkrMeObztcfWDMxasVOczxBdILocsc412sy2d_ePD78xjeio0NXb7A5YC50Vageu4SCZ49YBInNE5j-F7ZiEjesqoSHTbdsp4d6AhITAGHASYBzEgy2UkqkdFEIxI7g9eMBJEAZREB5sam2gFpL7Dy1zzkfVCv4nVKVfLGAMJPpGgJBJhIMYT1IULlE495GZqkAKxVE0HwbRJESEZP6Z5N-N3hnWQi4kt4jk96I02urawZkGRHLPjkh-FINI_jNDJN9qLf3MtXxuEclfJzEieSEUInmvbDwgB_yVI69-bN2b5Cha9np6k6fSMNsEjbRSeLoB8wg7_PWP39er-WYFtita4YBB0e3A8L02DpyGxrm9HXQhku-Ea7oiKLXHkgOd_zfeG_0XLx0iubC262WDXyWhStlVvN_OnggKVv5yhpU8GMJvHCt_QdW1--NqhgH0r_eFZGbXtVw5zwG3vM49_eq15HsntIJMVz5FIHzNwv5FD_pe_UOS55N4ES-SkGSIZNCrotm5Kpr9kyqa9apo9qGKZj8zRLNBFc16VTTzqmjmVdHsT1XTU5io50QkBUQWEL7mng2KN-cNLSLpZ_wUZ5Nb5fds1_jj-YLeKr9nu8KPF0sc3ig_9WxX-Kc0XuIb5c882xV-slotkxvln3i2a_mD4wm5UX7q2a7xR6tpeqv8nu1r_iijCVneKn9Cltfwo3Rxq9e_R_sanyZhHt_q7YkXHu4LAdM8nGNCk9P0OZSviGabN-t4G3nI_6x-PKzWEQmW6_VpUO8gvAjq_Z3FJBksmOXbxnBW3Snhtk2nfiEyPZn0VZZMc4Ln89zbf0b5_812dd9TKldJGVRSniMSTC-y0ju7RPzh5H8tNwPlxjHjzggvJnxWBw_vd9CwZw4MWlYaDUJZ4cvXFw2KtdzuWelrzawvbn1R22rrQLS-XGbKgWt8GzGGgtfaDGXvwZEFBqVufR0LL8I1unMgVMWVY75YDOCuhjfdQcUldxy04h8RfUBt3r86-jkMs6oCBo4VIBTURisHuj61cQ03HF6ElFBwUHqoxC8WwVeww9AxLGz5q-sM33AHKFm8L1N6YuCT_fS7P977tgG2j8tHXwk73u59VwcoytzbnntPsEXRyqN_W2_Wvp3D71OjitdCcXjwJ0aK33zLrXvaru6_r-fbFSLTbb_BNDuSbc9tEZmWWvkNUrCFZyY7fjkDJYvz5zA13HVGDeYwBkSmOAhr8DowmQZhPaTV_GDhP73bjI9BUHThN1l-sjrJ8mP8PBuD08viU4vxeDx88KezelSboTeZQ9YY3YquPY308L5ldx8p523nUh7b2j0r3cNHkve9VuKMl5Oc-gqC4IsDhOjCd0dPTFVPpVa12AW_xR7RJSLTL5rJznIzZs6xshlaPZLXh74OJ2EcJzE9DF16JumomkVVGqVsxGc4IZPJZEKmZNTMqgSnUZIWaRpXUVVUJSl4XCYEVyUnCatHYkZCEocpnuIowoQESRQV0wmnRYwpS-sUxSFvmZCB73IDbXajvr-d4TDFUTqSrODSvv-qYWZ9L1x0O4viUArr7Mc8J5zks6zvgf35P9wLJz8-HO4aXUOlu0KenH87zPhsE_uL6I_NG3VGzv59635Q9zwjfwcAAP__-Ds9kA">