public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/43843] New: Wrong-code due to missing temporary with user-defined operatator
@ 2010-04-21 21:25 burnus at gcc dot gnu dot org
2010-04-21 21:52 ` [Bug fortran/43843] " dominiq at lps dot ens dot fr
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: burnus at gcc dot gnu dot org @ 2010-04-21 21:25 UTC (permalink / raw)
To: gcc-bugs
Reported by Kyle Horne at http://gcc.gnu.org/ml/fortran/2010-04/msg00215.html
There is a missing temporary for user-defined operators:
type(polar_t),dimension(3)::b
b = polar_t(1.0,0.5)
b(:) = b(:)/b(1)
The latter is translated into:
struct polar_t * D.1551;
D.1551 = &b[0];
S.5 = 1;
while (1)
{
if (S.5 > 3) goto L.3;
b[S.5 + -1] = div_pp (&b[S.5 + -1], D.1551);
S.5 = S.5 + 1;
}
L.3:;
but that fails as one overrides *D.1551 alias b[0] alias B(1) in the first
iteration instead of evaluating first all of the RHS before assigning to the
LHS.
Work with ifort and NAG, fails with GCC 4.1, 4.2, 4.3, 4.4, 4.5, and 4.6
--
Summary: Wrong-code due to missing temporary with user-defined
operatator
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43843
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/43843] Wrong-code due to missing temporary with user-defined operatator
2010-04-21 21:25 [Bug fortran/43843] New: Wrong-code due to missing temporary with user-defined operatator burnus at gcc dot gnu dot org
@ 2010-04-21 21:52 ` dominiq at lps dot ens dot fr
2010-04-22 8:25 ` dfranke at gcc dot gnu dot org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: dominiq at lps dot ens dot fr @ 2010-04-21 21:52 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from dominiq at lps dot ens dot fr 2010-04-21 21:49 -------
It looks like a duplicate of PR 43841.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43843
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/43843] Wrong-code due to missing temporary with user-defined operatator
2010-04-21 21:25 [Bug fortran/43843] New: Wrong-code due to missing temporary with user-defined operatator burnus at gcc dot gnu dot org
2010-04-21 21:52 ` [Bug fortran/43843] " dominiq at lps dot ens dot fr
@ 2010-04-22 8:25 ` dfranke at gcc dot gnu dot org
2010-04-24 9:29 ` pault at gcc dot gnu dot org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2010-04-22 8:25 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from dfranke at gcc dot gnu dot org 2010-04-22 08:25 -------
*** This bug has been marked as a duplicate of 43841 ***
--
dfranke at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |DUPLICATE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43843
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/43843] Wrong-code due to missing temporary with user-defined operatator
2010-04-21 21:25 [Bug fortran/43843] New: Wrong-code due to missing temporary with user-defined operatator burnus at gcc dot gnu dot org
2010-04-21 21:52 ` [Bug fortran/43843] " dominiq at lps dot ens dot fr
2010-04-22 8:25 ` dfranke at gcc dot gnu dot org
@ 2010-04-24 9:29 ` pault at gcc dot gnu dot org
2010-06-27 16:15 ` pault at gcc dot gnu dot org
2010-06-27 16:22 ` pault at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: pault at gcc dot gnu dot org @ 2010-04-24 9:29 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from pault at gcc dot gnu dot org 2010-04-24 09:28 -------
Subject: Bug 43843
Author: pault
Date: Sat Apr 24 09:28:32 2010
New Revision: 158683
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=158683
Log:
2010-04-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/43841
PR fortran/43843
* trans-expr.c (gfc_conv_expr): Supply an address expression for
GFC_SS_REFERENCE.
(gfc_conv_expr_reference): Call gfc_conv_expr and return for
GFC_SS_REFERENCE.
* trans-array.c (gfc_add_loop_ss_code): Store the value rather
than the address of a GFC_SS_REFERENCE.
* trans.h : Change comment on GFC_SS_REFERENCE.
2010-04-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/43841
PR fortran/43843
* gfortran.dg/elemental_scalar_args_1.f90 : New test.
Added:
trunk/gcc/testsuite/gfortran.dg/elemental_scalar_args_1.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/fortran/trans.h
trunk/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43843
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/43843] Wrong-code due to missing temporary with user-defined operatator
2010-04-21 21:25 [Bug fortran/43843] New: Wrong-code due to missing temporary with user-defined operatator burnus at gcc dot gnu dot org
` (2 preceding siblings ...)
2010-04-24 9:29 ` pault at gcc dot gnu dot org
@ 2010-06-27 16:15 ` pault at gcc dot gnu dot org
2010-06-27 16:22 ` pault at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: pault at gcc dot gnu dot org @ 2010-06-27 16:15 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from pault at gcc dot gnu dot org 2010-06-27 16:15 -------
Subject: Bug 43843
Author: pault
Date: Sun Jun 27 16:14:55 2010
New Revision: 161471
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=161471
Log:
2010-06-27 Paul Thomas <pault@gcc.gnu.org>
PR fortran/43841
PR fortran/43843
* trans-expr.c (gfc_conv_expr): Supply an address expression for
GFC_SS_REFERENCE.
(gfc_conv_expr_reference): Call gfc_conv_expr and return for
GFC_SS_REFERENCE.
* trans-array.c (gfc_add_loop_ss_code): Store the value rather
than the address of a GFC_SS_REFERENCE.
* trans.h : Change comment on GFC_SS_REFERENCE.
2010-06-27 Paul Thomas <pault@gcc.gnu.org>
PR fortran/43841
PR fortran/43843
* gfortran.dg/elemental_scalar_args_1.f90 : New test.
Added:
branches/gcc-4_5-branch/gcc/testsuite/gfortran.dg/elemental_scalar_args_1.f90
Modified:
branches/gcc-4_5-branch/gcc/fortran/ChangeLog
branches/gcc-4_5-branch/gcc/fortran/trans-array.c
branches/gcc-4_5-branch/gcc/fortran/trans-expr.c
branches/gcc-4_5-branch/gcc/fortran/trans.h
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43843
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/43843] Wrong-code due to missing temporary with user-defined operatator
2010-04-21 21:25 [Bug fortran/43843] New: Wrong-code due to missing temporary with user-defined operatator burnus at gcc dot gnu dot org
` (3 preceding siblings ...)
2010-06-27 16:15 ` pault at gcc dot gnu dot org
@ 2010-06-27 16:22 ` pault at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: pault at gcc dot gnu dot org @ 2010-06-27 16:22 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from pault at gcc dot gnu dot org 2010-06-27 16:22 -------
Subject: Bug 43843
Author: pault
Date: Sun Jun 27 16:22:27 2010
New Revision: 161472
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=161472
Log:
2010-06-27 Paul Thomas <pault@gcc.gnu.org>
PR fortran/43841
PR fortran/43843
* trans-expr.c (gfc_conv_expr): Supply an address expression for
GFC_SS_REFERENCE.
(gfc_conv_expr_reference): Call gfc_conv_expr and return for
GFC_SS_REFERENCE.
* trans-array.c (gfc_add_loop_ss_code): Store the value rather
than the address of a GFC_SS_REFERENCE.
* trans.h : Change comment on GFC_SS_REFERENCE.
2010-06-27 Paul Thomas <pault@gcc.gnu.org>
PR fortran/43841
PR fortran/43843
* gfortran.dg/elemental_scalar_args_1.f90 : New test.
Added:
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/elemental_scalar_args_1.f90
Modified:
branches/gcc-4_4-branch/gcc/fortran/ChangeLog
branches/gcc-4_4-branch/gcc/fortran/trans-array.c
branches/gcc-4_4-branch/gcc/fortran/trans-expr.c
branches/gcc-4_4-branch/gcc/fortran/trans.h
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43843
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-06-27 16:22 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-04-21 21:25 [Bug fortran/43843] New: Wrong-code due to missing temporary with user-defined operatator burnus at gcc dot gnu dot org
2010-04-21 21:52 ` [Bug fortran/43843] " dominiq at lps dot ens dot fr
2010-04-22 8:25 ` dfranke at gcc dot gnu dot org
2010-04-24 9:29 ` pault at gcc dot gnu dot org
2010-06-27 16:15 ` pault at gcc dot gnu dot org
2010-06-27 16:22 ` pault at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).