<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/107724>107724</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-tidy crashes when it encounters #embed in C code
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Crest
</td>
</tr>
</table>
<pre>
I ran into the following crash trying to run clang-tidy on some code using C23 `#embed` to include a JSON schema file into a `const char []`. The shortened output from clang-tidy (the [full-output](https://github.com/user-attachments/files/16920084/clang-tidy19-embed-crash.txt) is attached just in case):
```
LLVM ERROR: Support for EmbedExpr is not implemented.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /usr/local/llvm19/bin/clang-tidy main.c -- -I/usr/local/include -fblocks
1. <eof> parser at end of file
2. While analyzing stack:
#0 Calling get_schema at line 99
#1 Calling main
3. /home/crest/friendly-s6/main.c:1074:3: Error evaluating statement
4. /home/crest/friendly-s6/main.c:1074:3: Error evaluating statement
```
Here's the trimmed down code to the function that triggers the error (with line numbers to match up against the crash report).
```
1070 static inline ucl_object_t *_Nonnull
1071 get_schema(void)
1072 {
1073 const unsigned char schema_json[] = {
1074 #embed "schema.json"
1075 };
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VU9v47YT_TT0ZWCDIm3ZOujgJDZ--0O6u0iK9hhQ5EhiQpEG_ySbfvqCYpy42aKHAhUMCwRn3ryZeTMSIejBIrZkc0U2NwuR4uh8e-0xxEXn1Gv7BbywoG10EEeE3hnjXrQdQHoRRoj-NR-iA58sSCPssIxavYKzENyEIJ1CSCEbXTMOpKaEcZw6VKSm2U9baZJCEPD_-29fIcgRJwG9NliiiuwjnQ0R5Cg8FKakpiv4dUQIo_MRLSpwKZ5ShN676ZIIYbtMnGyu-mTMslhlBLYbYzwFwveEHQk7DjqOqVtJNxF2TAH9UsQo5DihjYGwY6aU31XdMEp3a8KOH2GqZjkntZzLsoo_ImEN6AAFAxU8phBBW5AiIGFNDktvCN3nipTffLy9_e0XONzdfbsjfA_36XRyPkLvPBwy_uHHyWdY6yLo6WQws0O1Ks7fbw_7-wOE1E06goAuDeBxRogO_iFdY57Pr-XJu0eUkbCjDiHNKYOw6r1RuZql-Z2QT9ELiW_h76OQT6DSdHrPjq4Ibb57N3gxgfBDKtXke5iL7HNQJ4V5C141hB07bf9SW5iEtisJyyUsv_zkdqa17Dvj5FMocascl_BrdD3hBzgJH9CDiIBWgetnfRVLli1_H7PehBXm9Y8s1ZAz-WgRbQjjFK6FMfl2wPjwplMRwWiL0DSXptW7aaZebvjMiB1HN2FOL49YVpXXaJV5XYaasGPJlPB9Rbdrwvc8V-rgvfOAz8IkEd_YxbnxBXn9nyF_0ubP__9Dj4RtwyyK6PU0oQLlXmyZ-_PSSFZG7SzEUcRsNgzoiw_ODAjbveg4llLaNHXztYNJRDlCOoEYhM4b4EN7RdaENau_pQpQ0S2d89EStJ2RkzQPrsvifohA2P7hq7M2GXPhUl00l7Dds9MqD-uHAQOyvbo4czg_ZUclO29UVZZVAXp4DM6WvQWE33xCWMPn57whgTBWEFYzAmMXbhsg2xvCrz6lv1AtVw1vxALbass223XDq2oxtpu654ojVxI57epeIqupEruuUxXKarPQLaNsTRu6ZWy949Wq221Qyrqu6jVnfSfImuIktFnlSV05PyzmBdFWdLtl64URHZpw_pL4dl4mXRoCWVOjQwwfflFHg-3FhM89xQAvI1rQeUqlSzZmGbwXQ1u4nmW1SN60_36ZvdF9btmfAQAA__9SWC9N">