<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/120825>120825</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[JumpThreadingPass] Local variable not init lead to miscompilation
</td>
</tr>
<tr>
<th>Labels</th>
<td>
miscompilation
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
hstk30-hw
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/b7W6Mbnqr
```
#include "stdio.h"
#include "stdint.h"
typedef struct {
uint8_t key_word[48];
uint32_t value;
} ini_st;
uint32_t ext_call(char *section, ini_st *section_cfg, uint32_t section_cfg_num);
uint32_t callee(uint32_t *cfg)
{
ini_st arr[] = {
{"foo", 0xFFFFFFFF},
};
uint32_t cfg_num = sizeof(arr) / sizeof(ini_st);
uint32_t ret = ext_call("bar", arr, cfg_num);
if (ret != (0)) {
return ret;
}
if (arr[0].value == 0xFFFFFFFF) {
return (1);
}
*cfg = arr[0].value;
return (0);
}
unsigned int caller(void)
{
uint32_t cfg;
if (callee(&cfg) == (0)) {
printf("%d, %d\n", cfg, __LINE__);
}
printf("%d, %d\n", cfg, __LINE__);
return 1;
}
```
I don't think this code is Erroneous, even the variable `cfg` is not init.
But JumpThreadingPass seem miscompile it.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykVE2P4ygQ_TWVS6kjXP7MwQd3MpZmNbvaw0p7tLBNYrYJZAFnpufXr3DcsTvde5rICgKKV_Xeg-LOyZMWooT0GdLDho9-MLYcnH-J2dPwfdOa_rUcvL84iCugGqg-mb41ym-NPQHVP4HqNv87-73V_1pgVfgyNn-sAoql7tTYCwQi53tptgMQfbql_X2PVf71InpxROft2HmE_BlYhYg4Su2LxuOLeG2-G9tD-pwUkB4gXkfE1Hi8cjWK2zrkB5RaNs7Pc1bdw8QP33RcKaCiG7hFoMqJzkujgfbzqdVi0x1PYeN-frXe6PEMtPuYI-ALAVTcV4CqCWg3VfdW-5yNW3uzBCE-rMiHX5gRHY0JWtEe2Y96_kF-ANrPoWHyUZK5xgnWyZ_CHIGKkI12CFQva7NYb1wWBCv8dHqlGhC13M7lTGB7fBRjIndEoGICoGgiRgULESF5PksWEoxWh2E5GcisMW76MEgP28nkUFEAXGnxGSZQEb2raMG92TExewRfwhcYtrg8QQSv9fSYepR69tsCFVcj-0eT1248qnO_KEDZ7X68cfsgFl6s1P54MwAo7YPu05ju9ezGfFeb5tvXP740zf-Q_0WgWZbonSDrLsCqr9iH55R79IPUL-HfYWd6gdLhF2uNFmZ0IYO4Co1-EHjlVvJWCYSMhewZC7Ha-PBI_BZY9Tx6_G08X_4arOC91Kc_uXPohDjjWbrOnC9SCZR-u-nLuN_FO74RZZTHSZ6lEbHNUMa87SiOuRBMtEkSdckuTrqW5zkr0p7nG1kSoyQiilgeEWPbpM2IZZTFMeOM0g4SJs5cqq1S13Noihvp3CjKiFhB6UbxVig39Veie1H81lwo9FxbhpNP7XhykDAlnXcLlpdeTd35A83QG76ZjqtFpzdpUAneozf4Pt9mtOqxl0s_jO22M2egOiSdh6eLNf-IzgPVExsHVM-EriX9FwAA__8fX8tk">