[LLVMdev] finding implicit casts

John Trimble trimblej at gmail.com
Tue Apr 25 23:03:09 PDT 2006


Err.. Your right. What about just finding casts in general.


On 4/25/06, Chris Lattner <sabre at nondot.org> wrote:
>
> On Tue, 25 Apr 2006, John Trimble wrote:
> > I'm trying to find all the implicit casts in a program compiled with
> > llvm-gcc.
>
> I'm not sure exactly what you're trying to do here.  In particular,
> llvm-gcc will turn any casts that are implicit in the C code into explicit
> casts in the LLVM... which means that there is no good way to tell the
> difference between an implicit or explicit cast.
>
> > What I've been doing is for each function taking all the
> > instruction and going through each of their operands (and the opreands
> of
> > their operands etc...) and checking to see if any are an instance of
> > UnaryConstantExpr. When I encounter such an instance, I determine
> whether
> > the type of that value and its 0th operand differ, if they do its an
> > implicit cast. I do basically the same procedure for the the global
> > variables. Is this the best approach to take or is there a better way of
> > going about this?
>
> I'm not sure I follow here.  It sounds like you are detecting things like:
>
> short A = ...
> int   B = ...
> int   C = (int)A + B;
>
> However, there isn't a way to tell if the "(int)" was implicit or
> explicit.
>
> > I've asked at least a few questions on this mailing-list and you haveall
> > been VERY helpful. Thank you all so much.
>
> :)
>
> -Chris
>
> --
> http://nondot.org/sabre/
> http://llvm.org/
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>



--
John Trimble
Research Assistant
University of Arizona
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20060425/b906b038/attachment.html>


More information about the llvm-dev mailing list