[LLVMdev] Iterating over all uses of a Function

Anthony Danalis adanalis at eecs.utk.edu
Tue Apr 21 08:32:48 PDT 2009


Hi Mikhail,

Can you please attach a simple .bc file that is subject to this problem?

Anthony

On Apr 21, 2009, at 7:33 AM, Mikhail Glushenkov wrote:

> Hi,
>
> I try to iterate over all uses of a Function with the following
> code (simplified):
>
> for (Value::use_iterator UI = F->use_begin(), UE = F->use_end();
>                         UI != UE; ++UI) {
>
>    if (CallInst* I = dyn_cast<CallInst>(*UI)) {
>    // do something interesting
>    }
> }
>
> This works on Linux, but on Windows the dyn_cast fails, even
> though the only use of F in that module is a 'call'. However,
> dyn_cast<Instruction>(*UI) works, and returns a pointer
> to "<Invalid operator>" instruction.
>
> Is this a bug or am I doing something incorrectly?
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list