It seems that the checks performed at the beginning of WalkChainUsers() make the hypothesis that at least one parameters.
These checks make use of ChainedNode->use_begin. If parameters are used this iterator points to CopyToReg node of the first parameter.
If no parameter, this iterator points to the call node and return InducesCycle error code.
Here is a source code with no parameter that reproduces the problem.
declare void @foo32_2()
define i32 @calli32_stack() {
call void @foo32_2()
ret i32 0
}
In using LLVM version 3.8, this problem affects most the architecture that I’ve investigated.