This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/59678] [F03] Segfault on equalizing variables of a complex derived type
- From: "janus at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 12 Jan 2014 20:54:15 +0000
- Subject: [Bug fortran/59678] [F03] Segfault on equalizing variables of a complex derived type
- Auto-submitted: auto-generated
- References: <bug-59678-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59678
--- Comment #14 from janus at gcc dot gnu.org ---
(In reply to janus from comment #11)
> The dump shows that the assignment is translated into:
>
> {
> void * restrict D.2321;
> integer(kind=8) D.2320;
> integer(kind=8) D.2319;
> integer(kind=8) D.2318;
> struct t1 D.2317;
>
> D.2317 = y;
> y = x;
> y.parts = x.parts;
> y.parts.obj = x.parts.obj;
Up to here the dump is fine, but it the next line things start to go wrong:
> if ((void *) x.parts.obj.vec.data != 0B)
We fail to check if obj is allocated.