<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/143774>143774</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[BPF] fatal error: error in backend: Empty type name for BTF_TYPE_ID_REMOTE reloc
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
rnk
</td>
</tr>
</table>
<pre>
Previous issues suggest that this fatal error is a late-detected *usage* error, not an internal error, but the stack trace banner tells the user to file a bug. Ideally, we should be setting a high bar for diagnostic quality and insist that this be diagnosed in the frontend, but it seems that some design issues slipped in that don't meet that standard. If we're not going to fix the issue, we should at least use `reportFatalUsageError` to avoid the stack trace and bug reporting link.
```
$ cat t.c
void bad(void)
{
// 1 = BPF_TYPE_ID_TARGET
(void) __builtin_btf_type_id((char *)0, 1);
}
❯ clang -c t.c --target=bpf -g
fatal error: error in backend: Empty type name for BTF_TYPE_ID_REMOTE reloc
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: clang -c t.c --target=bpf -g
1. <eof> parser at end of file
2. Optimizer
3. Running pass "function(bpf-preserve-static-offset,BPFAbstractMemberAccessPass,BPFPreserveDITypePass,bpf-ir-peephole)" on module "t.c"
4. Running pass "BPFPreserveDITypePass" on function "bad"
#0 0x0000000117f0aa4c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/Users/rnk/llvm-project/build/lib/libLLVM.dylib+0x14ea4c)
#1 0x0000000117f08f78 llvm::sys::RunSignalHandlers() (/Users/rnk/llvm-project/build/lib/libLLVM.dylib+0x14cf78)
#2 0x0000000117f0a244 llvm::sys::CleanupOnSignal(unsigned long) (/Users/rnk/llvm-project/build/lib/libLLVM.dylib+0x14e244)
#3 0x0000000117e4fd58 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) (/Users/rnk/llvm-project/build/lib/libLLVM.dylib+0x93d58)
#4 0x0000000117e4fccc llvm::CrashRecoveryContext::HandleExit(int) (/Users/rnk/llvm-project/build/lib/libLLVM.dylib+0x93ccc)
#5 0x0000000117f0631c llvm::sys::Process::Exit(int, bool) (/Users/rnk/llvm-project/build/lib/libLLVM.dylib+0x14a31c)
#6 0x00000001000c9118 llvm::AliasSetTracker::~AliasSetTracker() (/Users/rnk/llvm-project/build/bin/clang-21+0x100009118)
#7 0x0000000117e61c4c llvm::report_fatal_error(llvm::Twine const&, bool) (/Users/rnk/llvm-project/build/lib/libLLVM.dylib+0xa5c4c)
#8 0x0000000117e61b4c llvm::report_fatal_error(llvm::Twine const&, bool) (/Users/rnk/llvm-project/build/lib/libLLVM.dylib+0xa5b4c)
#9 0x000000011a74ec24 llvm::BPFPreserveDITypePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/Users/rnk/llvm-project/build/lib/libLLVM.dylib+0x2992c24)
....
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /var/folders/t4/nnhgt0ln5wgbgzlj9rjpkj7m002hq7/T/t-28b9fd.c
clang: note: diagnostic msg: /var/folders/t4/nnhgt0ln5wgbgzlj9rjpkj7m002hq7/T/t-28b9fd.sh
clang: note: diagnostic msg: Crash backtrace is located in
clang: note: diagnostic msg: /Users/rnk/Library/Logs/DiagnosticReports/clang-21_<YYYY-MM-DD-HHMMSS>_<hostname>.crash
clang: note: diagnostic msg: (choose the .crash file that corresponds to your crash)
clang: note: diagnostic msg:
********************
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMWF1z4joS_TXipQvKlg2YBx4cPmZSlWyohNmtPFGy3DaayJKvJCfhPuxv35IME8jN1J3dm91aigKjj9bR6dOtFsxaUSvEORlfkfFywDq312Zu1NOg0OVhvjH4LHRnQVjboQXb1TVaB27P_IewUDHHJKAx2oCwwEAyh8MSHXKHJRCad5bVSGjeDyJ0AUo7YAqEcmjUabbvKDpvFcE6xp_AGcYRCqYUGnAopQ2dnfU_NVRCIjAounoE1yUyKQ_exguC3etOllAgWHROqBoY7EW9h4IZqLSBUrBaaesEh986JoU7AFMlCGXFxeYKPA1F3xuWr4xWDlV5wiscWMTG9tOsbhBK9Kz-4EyKtj3NZw5KrQidOmgQj2tZx1TJTDmC6wpekNCpwUBSrT34sNfXsHgweblL5kAis87zAmQSGWy1cWvvlm-e-VUgdxJ5M-xZi_IPDPutF10N_Uy_ohTqaUSi3L8n0fEd5YSmwD03I06iPNgqWElo5h8Jnfkh0yvoXyTK4fRI14SuIQaSLOFqs95tHzer3fVyt83vv6y2FyNPtmC3KzohnVC7wlU7d2hx5zsyQjO-Z8Yri9BZ5MmI_drJVVh-6T9XlMyWJF8Dl0zVMOQeMgyHjpkaHUmWRVvBsCZRfiZfkuQnHSsoGH_yTk5yWDWtO4AHAIo1GAR0tX3bxP3q9m67AoNSe1o2N6v8YQW2Kxrhen0emfUe2DvXWpLkPSW1cPuuGHHdELqW8vn0NWyN_o7cEbruReTp6xXKZVdicCE3zO4D0OBGT0RrsDWao_V6tbozfbOfyazVXDAfk6ZTYLkRrfM-fghKKLum9bCiPBr1rtgYXRvWADN116ByHvWf8xkfZ5NkgboiyQpaZnzAMgeoStBViFsS5fQ48q51ohG_oyFRnhzb7julvA5bZi0QSqtOcSd83GRFWw1bgxbNMw6tY07woa4qi47QxdVmnRfW0-FusSnQ5NyTsWHW9r2b48zl9fbQ4rHdmxRm2CK2ey3Ri4lS0AoaXXYSPQCveEpJlKc_QfgT28HMCb0fF-LFGwJCkwii16h_xfG0ihhLOQQZJDlJcnuw_cPGCOWCn7a9p7O3QYa97LR1BllD6MR7Wyjn4yeEyvqbRePVY9TTH7XlA6z0zaLoP29u_n47Kg_h91X0GqfIUt4Htscbv8ObVdPsI7z3nXoQtWLyK1OlDACyT4PEq2n2Bom-p5Cm6UeQFhKZ6tq7IzBCs06Fo68EqVX9eYTRNH1Dl1ygw7Qqx5lfhymtDo0_V31GsW1w6uyI1If1PXL9jOaw8GfNq7tuWtn39oyGMYRmwdUL-G9sZZaU4zOe0_c74fxcqh-BPge8ehXuhPeT4HF-pszxOxlMkvgnkRSyY__jHNQCCq3lp8mAJfEZuskZuiiK-CyOz-Mml4LZB3Q-uJ_Q9I3_fN_6b4dQIRSh65CxhzTugXkIfvU3bNNLx05ifpGD-pNrF47J3bFOO8s-2xehELhW1h2zzyfSyMb8PPtk75EW_0dIi3Oks3OkbJoip-dJ6eOzot9Epy5Qr38cfAHymWYUkwcr7C1TrPaaWXwwKVmFeZ-yRTqbUU6PuW00GoXykP6Fd6guj8VSvt3mi6-w_bqC9d3Nzd0_rv_2BdbXN6sH2N6F5qtvX-B-tbm73_ZVyuajSiezfrM_rXZ-DDAIUvPQy1xvL4SJr3CUdui_z64IjQ09hK6fmSF0XWlZ9ky6lNC1UvvaRVKNX-qi_l1-n5nv7dP3aRNFdP_blND11o8c0qyYVWWonP9ni9n9r622uCwl_UXuRJBQvwz4Ul83ojDMHPyTrn3z8sec-xCq9iw77UiyeHx8fBze3g6Xy-HXr7e3Dw8kWfn2vbbOH5MkWY1CzfurgDK-19r2xXI_s78zhjsX18agbbUqra_LD7ozfUXdK_zPFzhej_5iCJxuV4NynpSzZMYGOI-n6WwyjeMkHuznccaihGblOEqKNIkjlk7GSZTF0aQoi2lUDsScRnQcTeI4nqXjJB4VUzqdpRNalWyWTNIZSSNsmJAjH_EjbepBuFPM4zSZTtOBZAVKG_4AoFThy-mOScl4OTDzkCaKrrYkjaSwzr6ZccLJ8M_B1WZNxkv45LvUoDNy_p_fl47be57TfwUAAP__opFEZw">