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: Re:


On Fri, 2004-09-24 at 19:36 -0700, Dale Johannesen wrote:
> On Sep 24, 2004, at 6:24 PM, Devang Patel wrote:
> > On Sep 24, 2004, at 5:58 PM, Dale Johannesen wrote:
> >> I'm tracking down a crash I'm getting locally.  It's not clear yet 
> >> this is connected,
> >> but I see a tree of this form in the Gimple and SSA dumps:
> >>
> >>   *pTmp4<D6472> = __NAGf90_dcdivdc (*pTmp2<D6470>, *pTmp3<D6471>);
> >>
> >> The Gimple doc does not allow a pointer deref in a function argument.
> >> Is is supposed to?
> >
> > It says CALL_EXPR arguments are valid LHS. So it allows. I am reading 
> > comment at the beginning of tree-gimple.c
> 
> Thanks, I was looking at tree-ssa.texi:
> 
> call-stmt: CALL_EXPR
>    op0 -> _DECL | '&' _DECL
>    op1 -> arglist
> arglist:
>    NULL_TREE
>    | TREE_LIST
>        op0 -> val
>        op1 -> arglist
> val : _DECL | CONST
> 
> There seem to be a number of differences.   Apparently the 
> tree-ssa.texi version is older, as it's
> closer (but not identical) to the summit paper, but some nits have 
> crept in.   The version in
> tree-gimple.c doesn't seem to allow ADDR_EXPR, but clearly it has to:
> 
>   __NAGf90_write (6, &FMT_129<D6540>, -1, 0B, 0, 0);
> 

Actually, it *doesn't* allow random ADDR_EXPR.
We consider min_invariant things to be CONST.
That's why you see &<something> in the arglist, becuase it's invariant.

Random ADDR_EXPR's are *NOT* allowed in the call argument list, nor
should they be.

-- 


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