[cfe-users] detect default in SwitchInst

Bella V via cfe-users cfe-users at lists.llvm.org
Fri Jul 16 13:42:33 PDT 2021


In my case, for a function having a default statement in switch i could see
a BB with label as sw.default is created:
switch i32 %0, label %sw.*default* [
]
sw.default: br label %sw.epilog

For a non-default switch statement function:
switch i32 %1, label %sw.epilog [
]



On Fri, Jul 16, 2021 at 1:00 PM David Blaikie <dblaikie at gmail.com> wrote:

> LLVM IR switch instructions always have a default:
> https://llvm.org/docs/LangRef.html#switch-instruction - that jumps over
> the body of the switch. (when lowering C code to LLVM IR the default would
> be put after the loop, and the breaks from any case statements would jump
> over that default block)
>
> On Fri, Jul 16, 2021 at 12:34 PM Bella V via cfe-users <
> cfe-users at lists.llvm.org> wrote:
>
>> Hello All,
>>
>>
>>
>> I'm trying to find whether SwitchInst has a default statement. I'm able
>> to iterate through the case values using case_begin and case_end. If I try
>> to detect default using case_default which returns an iterator which points
>> to the default case.
>>
>> Code Example:
>>
>> case_default()->getCaseIndex() or case_default()->getSuccessorIndex()
>> returns the same values for both default and non-default switch C code.
>>
>>
>> Any suggestions to solve this problem?
>>
>>
>> Regards.
>> _______________________________________________
>> cfe-users mailing list
>> cfe-users at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20210716/99f78172/attachment.html>


More information about the cfe-users mailing list