[IPO/LowerTypesTest] Skip blockaddress(es) when replacing uses.
authorDavide Italiano <davide@freebsd.org>
Tue, 7 Nov 2017 00:09:25 +0000 (00:09 +0000)
committerDavide Italiano <davide@freebsd.org>
Tue, 7 Nov 2017 00:09:25 +0000 (00:09 +0000)
commit1a46affb45c5e3c2e8645cde04a8690583d8b912
tree296343af3f61bc223965d750e7b2e006be909ec9
parent6119f80034deca6c53fdeca746e3cb654ebad0c5
[IPO/LowerTypesTest] Skip blockaddress(es) when replacing uses.

Blockaddresses refer to the function itself, therefore replacing them
would cause an assertion in doRAUW.

Fixes https://bugs.llvm.org/show_bug.cgi?id=35201

This was found when trying CFI on a proprietary kernel by Dmitry Mikulin.

Differential Revision:  https://reviews.llvm.org/D39695

llvm-svn: 317527
llvm/include/llvm/IR/Value.h
llvm/lib/IR/Value.cpp
llvm/lib/Transforms/IPO/LowerTypeTests.cpp
llvm/test/Transforms/LowerTypeTests/blockaddress.ll [new file with mode: 0644]