This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How could I cast the return type of a function created by gimple_build_call?


Hi,

On Thu, Dec 08, 2011 at 10:38:24AM +0100, Feng LI wrote:
> Hi,
> 
> I'm building a function with
> fread = build_decl (LOCATION, FUNCTION_DECL, get_identifier (name), type);
> 
> and then use it in gimple with
> gimple gfread = gimple_build_call (fread, 1, offset);
> gimple_call_set_lhs (fread, lhs);
> 
> But I need a cast here, since the lhs has a different type than the return value
> of the function fread. So I suppose that I need a cast here to cast from the
> return type of fread -> type_of (lhs). But I've no idea how could I
> achieve this?
> Any suggestions?

You need to store the result into a temporary and then add a
VIEW_CONVERT_EXPR gimple assignment statement after the statement to
convert to the necessary type.  Grep *.c files for 
'build.*VIEW_CONVERT_EXPR' and you should be able to find some example
to follow in your own code.

Martin 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]