goto L; with L: in a if/else branch
ID0001502: **This issue was created automatically from Mantis Issue 1502. Further discussion may take place here.** --- | **Id** | **Project** | **Category** | **View** | **Due Date** | **Updated** | | --- | --- | --- | --- | --- | --- | | ID0001502 | Frama-C | Kernel | public | 2013-10-16 | 2014-03-13 | | | | | | | | | --- | --- | --- | --- | --- | --- | | **Reporter** | dpariente | **Assigned To** | virgile | **Resolution** | fixed | | **Priority** | normal | **Severity** | major | **Reproducibility** | always | | **Platform** | - | **OS** | - | **OS Version** | - | | **Product Version** | Frama-C Fluorine-20130601 | **Target Version** | - | **Fixed in Version** | Frama-C Neon-20140301 | ### Description : [STANCE] The following code: void f(int a) { goto _LOR_0; if (a) _LOR_0: ; } analyzed by: frama-c ../skip.c -print -ocode ../skip2.c (with or without -no-simplify-cfg) generates a warning: [kernel] user error: Label _LOR_0 not found and an error when parsing pretty-printed code in skip2.c: frama-c ../skip2.c [kernel] user error: Label _LOR_0 not found It seems that the branch containing the label is pruned as considered as empty! Typically, modifying cabs2cil.ml (line 1142) so that Instr (Skip _) is no more considered as an empty stmt solves the problem (of course this is just a workaround!). Is something more robust available? ## Attachments - [bts1502.patch](/uploads/9d5770006929f966bf768c169c8c6b21/bts1502.patch)
issue