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()->getCaseIn
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)
O
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
Ah, LLVM IR isn't really the place to determine how the source was written
- the names of those LLVM values aren't always preserved (generally in
optimized builds of clang the names will not be generated) - that said,
even some LLVM features rely on the names, so it's not totally unusable.
You can