<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54241>54241</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang trigger segment fault in isl_space_check_named_params while EmitBackendOutput
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
wierton
</td>
</tr>
</table>
<pre>
code to trigger it:
$ cat new.c
```
int Link[] = {-1};
int W[] = {2};
extern void abort(void);
int f(int k, int p) {
int pdest, j, D1361;
j = 0;
pdest = 0;
for (;;) {
if (pdest > 2) do
j--, pdest++;
while (j > 2);
if (j == 1) break;
int ctf0_idx;
ctf0_idx = (int)0x00000000;
int ctf0_constval;
ctf0_constval = (int)0x00000000;
int *ctf0_arr[] = {&ctf0_constval};
int ctf1_idx;
ctf1_idx = (int)0x00000000;
int ctf1_constval;
ctf1_constval = (int)0x00000000;
int *ctf1_arr[] = {&ctf1_constval};
while (pdest > p)
if (j ==
((*ctf0_arr[ctf0_idx]) + (*ctf1_arr[ctf1_idx])))
pdest++;
do {
D1361 = W[k];
do
if (D1361 != 0) pdest = 1, W[k] = D1361 = 0;
while (p < 1);
} while (k > 0);
do {
p = 0;
k = Link[k];
while (p < j)
if (k != -1) pdest++, p++;
} while (k != -1);
j = 1;
}
return pdest;
}
int main() {
int ctf2_idx;
ctf2_idx = (int)0x00000000;
int ctf2_constval;
ctf2_constval = (int)0x00000000;
int *ctf2_arr[] = {&ctf2_constval};
int ctf3_idx;
ctf3_idx = (int)0x00000000;
int ctf3_constval;
ctf3_constval = (int)0x00000000;
int *ctf3_arr[] = {&ctf3_constval};
if (!f(0,
((*ctf2_arr[ctf2_idx]) - (*ctf3_arr[ctf3_idx]))))
abort();
return 0;
}
```
clang's output
$ clang-6.0 -O1 -mllvm -polly new.c
```
#0 0x00007f18cbe896fe llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/usr/
#1 0x00007f18cbe87886 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-6.0/bin
#2 0x00007f18cbe879d9 (/usr/lib/llvm-6.0/bin/../lib/libLLVM-6.0.so.1+0x8539
#3 0x00007f18cf3c13c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0
#4 0x00007f18cb15822e __libc_malloc (/lib/x86_64-linux-gnu/libc.so.6+0x9a22
#5 0x0000556c50b24856 isl_malloc_or_die (/usr/lib/llvm-6.0/bin/clang+0x1e3c
#6 0x0000556c50bd3eaf isl_tab_alloc (/usr/lib/llvm-6.0/bin/clang+0x1eebeaf)
#7 0x0000556c50be2383 isl_tab_from_basic_map (/usr/lib/llvm-6.0/bin/clang+0
#8 0x0000556c50b1acfb isl_basic_map_remove_redundancies (/usr/lib/llvm-6.0/
#9 0x0000556c50b543c1 isl_basic_map_normalize (/usr/lib/llvm-6.0/bin/clang+
#10 0x0000556c50b54a2a isl_map_normalize (/usr/lib/llvm-6.0/bin/clang+0x1e6
#11 0x0000556c50b54af6 isl_map_plain_is_equal (/usr/lib/llvm-6.0/bin/clang+
#12 0x0000556c50b740aa (/usr/lib/llvm-6.0/bin/clang+0x1e8c0aa)
#13 0x0000556c4f6b5586 (/usr/lib/llvm-6.0/bin/clang+0x9cd586)
#14 0x0000556c4f6b7ab1 (/usr/lib/llvm-6.0/bin/clang+0x9cfab1)
#15 0x00007f18cce14d3b llvm::RGPassManager::runOnFunction(llvm::Function&)
#16 0x00007f18cbf74128 llvm::FPPassManager::runOnFunction(llvm::Function&)
#17 0x00007f18cbf741ab llvm::FPPassManager::runOnModule(llvm::Module&) (/us
#18 0x00007f18cbf73a16 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/
#19 0x0000556c4f18f0c1 (/usr/lib/llvm-6.0/bin/clang+0x4a70c1)
#20 0x0000556c4f191873 clang::EmitBackendOutput(clang::DiagnosticsEngine&,
tOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::
default_delete<llvm::raw_pwrite_stream> >) (/usr/lib/llvm-6.0/bin/clang+0x4
#21 0x0000556c4f79c7bc (/usr/lib/llvm-6.0/bin/clang+0xab47bc)
#22 0x0000556c4fa22609 clang::ParseAST(clang::Sema&, bool, bool) (/usr/lib/
#23 0x0000556c4f79a13b clang::CodeGenAction::ExecuteAction() (/usr/lib/llvm
#24 0x0000556c4f5d1e56 clang::FrontendAction::Execute() (/usr/lib/llvm-6.0/
#25 0x0000556c4f595166 clang::CompilerInstance::ExecuteAction(clang::Fronte
#26 0x0000556c4f67b01b clang::ExecuteCompilerInvocation(clang::CompilerInst
#27 0x0000556c4f132b20 cc1_main(llvm::ArrayRef<char const*>, char const*, v
#28 0x0000556c4f1220ce main (/usr/lib/llvm-6.0/bin/clang+0x43a0ce)
#29 0x00007f18cb0e20b3 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0
#30 0x0000556c4f1309fe _start (/usr/lib/llvm-6.0/bin/clang+0x4489fe)
Stack dump:
0. Program arguments: /usr/lib/llvm-6.0/bin/clang -cc1 -triple x86_64-
mes -main-file-name new.c -mrelocation-model static -mthread-model posix -f
ay -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -momit-leaf-f
m /usr/local/include -internal-isystem /usr/lib/llvm-6.0/lib/clang/6.0.1/in
nc-isystem /include -internal-externc-isystem /usr/include -O1 -fdebug-comp
75 -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -mllvm
1. <eof> parser at end of file
2. Per-module optimization passes
3. Running pass 'Function Pass Manager' on module 'new.c'.
4. Running pass 'Region Pass Manager' on function '@f'
5. Running pass 'Polly - Simplify' on basic block '%32'
clang: error: unable to execute command: Segmentation fault (core dumped)
clang: error: clang frontend command failed due to signal (use -v to see in
clang version 6.0.1-14 (tags/RELEASE_601/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/
n script.
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/new-1f472a.c
clang: note: diagnostic msg: /tmp/new-1f472a.sh
clang: note: diagnostic msg:
********************
```
compile it with -Og can also trigger this crash
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytWdty4zgO_RrnhSWXRF394Aenk3R3VWaTSrI7jy6KomwlkuilqFzm6wckdaMvvXbvpBzHJsFzABAAQSXl2deS8owhyZEUxWbDBCrkzF_N3JuZu5rhAFEiUc0-5rQbitzupb8WtUT3Rf02C69n4Q2a-fAbXzveLL6Z-dejzJ-2AJ7Om3f2KZmo0TsvMkRSLuQMJ-rLDC_2JBVeDrPq79sMf0Pqww7kFLIRQWYsY41UAq_q7cbzI2-AQuhVK-NORrT8wWjOBQI2NQIvmwV4cjXZr7xFWElkfBRQP6-OozTo9LlWL_96KvKxLUqmgF4HkD2jRy6tt1LSU1SpYOTtmCzYT2Xurovs0yLrB81WaC8Cjvvpdj-W8IBCed3Id1IeQvUzZ-PN8EovJELYQTHDkc01iZGJMt4xk7xLTfJOmuT9rkneKZO8kyYN-z4GkArkaWjYm27HFdKBqV5Tlw7bHt7ocMXXaJDxRhlvlOleFvaxYB0lMm6nATLppe1Wuf6mgO0Y308KY1i3DHsm7UDfMQs9lTQ9mh4ZSdxTGbSD6W86NywJ8Pwo86Y97R7PskPTdkcZ3_RoV_yO2Lun0euBh40D3nrjHW-wvnO7KhlHysW-KZPlltxr58RxTIWfZa1gsoWia0gHV9hSKsArUtQ6hg5qLAQS3kvIfuiM9BkQjiSjNX4mlglyfCoR8YlE7NTwDw3xLzPEP2GI_3uG-KcM8U8ZkptU99T5CPH97Vf1Ao-1AE_qhTNWC3-U8A-qxTSc-wPbDsEuutwjkWV3EeadlqTezHDcIN7KXSsnPYiacaK5i5wHDzlVWb5XyNnxsvz6RW8yw76LjIfj3EtoypJFlDOkVqsWx181X4358CjA6c-S0LcXQSgDS0YhQT7WvJFwzlbgfFNRwdC7thHwPlB5e1RxkkTHqJ7a-rnY1KT8QeqsZKLp82oCWhapeofFymj4mEL69UR4n2iRnbEa383n41yR3t__5w81PW_4HCrHtfuZhP5iIPGnJLlPPZ-6aL0WUCe4YGshO0aD95lE6yhwyqJuP51N3ZqJndyC0zLF4CqGATywLPDCBGMG4LCEritSlpyegU4VbqQ1XxCMB_CwAw_DiIZuioMkjFDRlB3ymot1VrBzHNbFIxB4zKcDQWQTZD4juSaQJF1PtT8bnKUAMeQTUMQ2BcN-4g8UueDVOiVNoZy1u4hrIEhsAo_QPNUEAy5sdcXfYadZ1tYZqWnBml9zDeALGzwMIHz2wGsuYDuKvy7ahzHV3H0Ggkm3x7-JrbYhGgm8A4I8Ggh2JZyG66JZs_-2qqD_jgXYJogDl5BL9U0oLJqGjedPUIM8SsMQatBFqAuawRoLNNgDjUnqXQqawxoLNJyWAMq8IPPTSbV8-v5ImuYPUhO4kXZluK0f6ru2prLgtVWgx0Fb8cgqM3kceDiZcNw9_gMc8QEHSc_g-INnbWkfM_2QdcKMRMkekU-86fFSsg2hX91hNlL-rHblQPu_6EayhbXlXpK79MItD0gMa6auwq4NuvCS2Dcnu9HotirkNZzArM4ezPmPk8n0TUE2NZzDBW1u601RG927Bkc-7NTuNEi3RWZmin0Pn46JjP64IZLcky_oPE4IGKKM5aQt5TpjJZMM-nq7T9h9iEKyddctwB0Dfs863C3fjT7zLJ_FCxqnF54uJA1gjbUR2AKFszNyF1NnPRLRsNXzi-3_Z1aRzikp5-X495h1I5m_ZwHxINEnsN94xr6zemWyywTCJ6OtZKs-C087cKSxi1SYeQxO_QnNneC1hMg6wnNO_zUShTbRIvSiyLan2sHVTPyEGIJTkx036UCzkSCyy22cup7lsA5q5HnnlBzCTvUYwWM7B32cQlpS6q27C94YzSshyNcTyyHE6ZaIPilWOqAht6wxGHgfSRKbBGOXMn2DvDANfOKqVnwSuQurCLoMu6nfN47gbiHXE5rzmsex492rT767gLuCgb1Q8SCBpYPi-lqBsrbaDVXEnZvb2KPgG0EqRMSmrVgt1RUBnUWEHNg15EhR7EqGOiMNeAWNmqP84OQQAE5NKmYuSTAqWNlFi1NB4pUIzIOKCjOmV-9Gd7wpPpGTG0DyBUSgIpMO3bWKzIkC5GQfROQO5WVb1U5R5xyGWNqqZ8iObOtCReLNJksBnENpd0pocnvIamIlKARV5K6oadlmDAGUehBMSqeAO5Nk1S8cYgY6z9-p24ynkQxJTacQh_jmiTM95BlE1WUz10aBnbB_GjYOYZCnr9SBM1UWFVNmUqokxyPKabb8w-H6yIEZ8BIXzmS-u8QaRK8LB8g1xnP9EFCVYIGIRFCzEM-R2kojjPvYATdX-hBHiqYq_tL7CkubhnWNg9_Jwp1T7YeeAzPjvptBqlVAfXsC1QGGOkz4Zm7WOJ4bsOAE2BPbnIDKexr4PgvcXP3RUOEJqEd9o3fQcwF9S5F_dTj63oBSiJQ3DYVDHw9Yfc1DTAiueizU1iQt9b80mKmVUKiqCm7bavKZbVSmGV_ps1wlN4VLrU5Rlg15ewhsMi_vjpIeFVBgczJYrjkbfblXoG0DIfSuxxhDfVQakHe4-CsNdMw60GODvCSbBqLv6fb-dvV8u45cFcx5Uav06HR60WmodOlSfkcnpc2I6ERGOpGVoM5lM6XPpBJ0vSmEVWlSSzk1VXPV3azQGLKoavTMo9YONW0KSY0IguRAgu04VEmwdCulLnNwZJpMnXOxGQ7QGjUUKpacn8vWV-f_4zV5wNSpvnp5WX37gV5-3KK7h_v7hz9__us7uvt5f_uMXh708PW_v6On28eHp5dBh0ewUXDKILky1PBW6KdEjeocVAxAAHNaEAmTUBU6MwcBCC5dd2GWjP9dO8PZ4DkJdQffQS46Xh7EmPQPu35zdbO90Pf_1A4cfeJnmhQEgfRRyC0U3A2ipEakbMb_R8ptAU27IM32Klv62cJfkCtZyJItTSr1co3J7C6poQ1Q9_VmRyhb0y2jb2t1EmZrKK2karoH6Ad3jqtWlEsVxM0QxRvQrE3noGvfdXZnEMTDK6NSHRhN0zKVu2GAA-9quwzizM-SOEpd149T5roBNIo-DaA5CmMvCq5KkrKyWapnuxjD9iANAZ9n4c1VscQudE2-G8Ov6ybzRZJEeRThLIjpIgopFFPoxoty3mfYlVhqlSAZG5gsi0Y24yQEJxQlxpbmUfIVaeWWi-VHwYTk9ZWmXmrV_waEIogj">