Get segfault with ModulePass


don't know if this is the right list. Please post a better place,

I'm currently writing a LLVM ModulePass and ran into strange segfaults or
endless loops within LLVM. My main question is, if this is a programming error
or API misuse from me or a LLVM bug?

Here is some minimal code, that triggers the bug:


Have you tried building LLVM with assertions enabled? Assertions are
often a good way to catch API misuses, but they aren't on by default
for release builds.

FWIW, StringRefs aren't guaranteed to be nul-terminated. They support
a similar comparison API as std::strings, though, so things like
`user->getOpcodeName() == "<Invalid operator>"` should just work™.



thanks for the answer.

Have you tried dumping the function declaration which crashes ("F->dump()")? I suspect you're running into a function that doesn't have as many arguments as you expect.


That was it, thank you. The function has varargs and the i points to the
variable argument.

A simple check prevents the error.