Well, in general – you cannot. Landing pad destination blocks are very precious and should not have anything extra. It's likely that ollvm simply does not handle them properly and needs to be fixed.
On Thu, Nov 28, 2019 at 6:32 AM weipingshun via llvm-dev wrote: > > > hello all > > when i use ollvm from github.com:heroims/obfuscator.git [version 5.0.0] to obtuscate my c++ code. > > I got a endless loop in llvm SelectionDAGBuilder.cpp:findUnwindDestinations function. > > > the 1349 - 1351 line is my debug code. > the code run in 1353 line branch. and return to 1327 line. > > I don’t known in this function how to handle LoadInst? help!! > > > thanks. > > > 魏平顺 | 高级工程师 > 北京数美时代科技有限公司 > 手机/微信: 18510971882/313275773 > 邮箱: [hidden email] > 网址: www.ishumei.com > 地址: 北京市朝阳区来广营西街诚盈中心1号楼3A室 > > > _______________________________________________ > LLVM Developers mailing list > [hidden email] > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-- With best regards, Anton Korobeynikov Department of Statistical Modelling, Saint Petersburg State University
In reply to this post by Jonas Paulsson via llvm-dev
On Thu, 28 Nov 2019 at 03:32, weipingshun via llvm-dev
<[hidden email]> wrote:
> I don’t known in this function how to handle LoadInst? help!!
That code looks dodgy, but it should only cause a problem if the input
IR is malformed. findUnwindDestinations is only called on unwind
destination blocks (successors of invoke or cleanupret), and they must
start with one of those kinds of instructions.