SelectionDAGBuilder-may by a bug

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
邮箱: weipingshun@ishumei.com
网址: www.ishumei.com
地址: 北京市朝阳区来广营西街诚盈中心1号楼3A室

logo最终定稿.png

Hello
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

PastedGraphic-2.tiff (347 KB)

logo最终定稿.png

Hi,

hello all

I found ollvm use -bcf may change any block (include Landing pad block). I fixed the ollvm code not change landing pad block. now it’s work fine.

thanks very much!

Cheers.

魏平顺 | 高级工程师
北京数美时代科技有限公司
手机/微信: 18510971882/313275773
邮箱: weipingshun@ishumei.com
网址: www.ishumei.com
地址: 北京市朝阳区来广营西街诚盈中心1号楼3A室

logo最终定稿.png