diff options
| author | Bill Wendling <isanbard@gmail.com> | 2008-01-26 01:43:44 +0000 |
|---|---|---|
| committer | Bill Wendling <isanbard@gmail.com> | 2008-01-26 01:43:44 +0000 |
| commit | 0862e3421d370e30a567ded7ab49912d5ca37633 (patch) | |
| tree | 557efc7566e070abcf21085092bb0efc0ef355a4 /llvm/lib/Transforms/Utils/InlineFunction.cpp | |
| parent | 610ee7134ecc6ce11691c9cdafa6e33c8effa242 (diff) | |
| download | bcm5719-llvm-0862e3421d370e30a567ded7ab49912d5ca37633.tar.gz bcm5719-llvm-0862e3421d370e30a567ded7ab49912d5ca37633.zip | |
If we have a function like this:
void bork() {
int *address = 0;
*address = 0;
}
It's compiled into LLVM code that looks like this:
define void @bork() noreturn nounwind {
entry:
unreachable
}
This is bad on some platforms (like PPC) because it will generate the label for
the function but no body. The label could end up being associated with some
non-code related stuff, like a section. This places a "trap" instruction if the
SimplifyCFG pass removed all code from the function leaving only one
"unreachable" instruction.
llvm-svn: 46387
Diffstat (limited to 'llvm/lib/Transforms/Utils/InlineFunction.cpp')
0 files changed, 0 insertions, 0 deletions

