diff options
author | Chris Lattner <sabre@nondot.org> | 2011-02-18 04:43:06 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2011-02-18 04:43:06 +0000 |
commit | 78f7a25f9826ba66610b5bca83ebea71793abf59 (patch) | |
tree | a081b6180cddd66932f73da6dc34fc673193a5f0 /lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | |
parent | 13fb0db0c26ec498cf8ffb0f9943d28962d4ced7 (diff) | |
download | external_llvm-78f7a25f9826ba66610b5bca83ebea71793abf59.zip external_llvm-78f7a25f9826ba66610b5bca83ebea71793abf59.tar.gz external_llvm-78f7a25f9826ba66610b5bca83ebea71793abf59.tar.bz2 |
prevent jump threading from merging blocks when their address is
taken (and used!). This prevents merging the blocks (invalidating
the block addresses) in a case like this:
#define _THIS_IP_ ({ __label__ __here; __here: (unsigned long)&&__here; })
void foo() {
printf("%p\n", _THIS_IP_);
printf("%p\n", _THIS_IP_);
printf("%p\n", _THIS_IP_);
}
which fixes PR4151.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125829 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/LegalizeDAG.cpp')
0 files changed, 0 insertions, 0 deletions