This is the mail archive of the gcc-patches@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]

[PATCH] Fix PR tre-opt/24365 ICE with complex, nvr and return slot


The problem here is that we have a return slot and a complex type and nrv
has happened so that the complex variable for the return value has already not
been consided a gimple variable.  So when we inline the function in, we now
have a variable which is marked as a gimple variable but is used not as one
through IMAG_EXPR/REAL_EXPR use on the lhs.

This fixes the problem by marking that variable as a non gimple variable
when inlining if we are using it for a return slot and the return value
was marked as a non gimple variable.


OK? Bootstrapped and tested on x86_64-pc-linux-gnu with no regressions.

Thanks,
Andrew Pinski

ChangeLog:
	* tree-inline.c (declare_return_variable): If the return variable
	was marked as a non gimple complex, set the return slot variable
	to be a non gimple comple variable.

Attachment: fixPR24365.diff.txt
Description: ASCII C program text


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