* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
@ 2005-12-22 3:32 ` pinskia at gcc dot gnu dot org
2006-03-15 16:49 ` pault at gcc dot gnu dot org
` (16 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-12-22 3:32 UTC (permalink / raw)
To: gcc-bugs
------- Comment #7 from pinskia at gcc dot gnu dot org 2005-12-22 03:32 -------
This also blocks building benchs_F95.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pinskia at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
2005-12-22 3:32 ` pinskia at gcc dot gnu dot org
@ 2006-03-15 16:49 ` pault at gcc dot gnu dot org
2006-03-19 21:01 ` patchapp at dberlin dot org
` (15 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-03-15 16:49 UTC (permalink / raw)
To: gcc-bugs
------- Comment #8 from pault at gcc dot gnu dot org 2006-03-15 16:49 -------
You will be glad to hear that, at long last, I am putting the finishing touches
to a patch for this. It needs comments and a fine-toothed combing of the code.
I maybe will submit it tomorrow morning.
Paul Thomas
--
pault at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |pault at gcc dot gnu dot org
|dot org |
Status|NEW |ASSIGNED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
2005-12-22 3:32 ` pinskia at gcc dot gnu dot org
2006-03-15 16:49 ` pault at gcc dot gnu dot org
@ 2006-03-19 21:01 ` patchapp at dberlin dot org
2006-03-22 5:13 ` pault at gcc dot gnu dot org
` (14 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: patchapp at dberlin dot org @ 2006-03-19 21:01 UTC (permalink / raw)
To: gcc-bugs
------- Comment #9 from patchapp at dberlin dot org 2006-03-19 21:01 -------
Subject: Bug number PR17298
A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2006-03/msg01068.html
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2006-03-19 21:01 ` patchapp at dberlin dot org
@ 2006-03-22 5:13 ` pault at gcc dot gnu dot org
2006-03-22 20:00 ` pault at gcc dot gnu dot org
` (13 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-03-22 5:13 UTC (permalink / raw)
To: gcc-bugs
------- Comment #10 from pault at gcc dot gnu dot org 2006-03-22 05:13 -------
Subject: Bug 17298
Author: pault
Date: Wed Mar 22 05:13:13 2006
New Revision: 112278
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112278
Log:
2006-03-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran/17298
*trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): New
function to implement array valued TRANSFER intrinsic.
(gfc_conv_intrinsic_function): Call the new function if TRANSFER
and non-null se->ss.
(gfc_walk_intrinsic_function): Treat TRANSFER as one of the
special cases by calling gfc_walk_intrinsic_libfunc directly.
2006-03-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran/17298
* gfortran.dg/transfer_array_intrinsic_1.f90: New test.
* gfortran.dg/transfer_array_intrinsic_2.f90: New test.
Added:
trunk/gcc/testsuite/gfortran.dg/transfer_array_intrinsic_1.f90
trunk/gcc/testsuite/gfortran.dg/transfer_array_intrinsic_2.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-intrinsic.c
trunk/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2006-03-22 5:13 ` pault at gcc dot gnu dot org
@ 2006-03-22 20:00 ` pault at gcc dot gnu dot org
2006-03-22 20:02 ` pault at gcc dot gnu dot org
` (12 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-03-22 20:00 UTC (permalink / raw)
To: gcc-bugs
------- Comment #11 from pault at gcc dot gnu dot org 2006-03-22 20:00 -------
Subject: Bug 17298
Author: pault
Date: Wed Mar 22 20:00:17 2006
New Revision: 112293
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112293
Log:
2006-03-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran/17298
*trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): New
function to implement array valued TRANSFER intrinsic.
(gfc_conv_intrinsic_function): Call the new function if TRANSFER
and non-null se->ss.
(gfc_walk_intrinsic_function): Treat TRANSFER as one of the
special cases by calling gfc_walk_intrinsic_libfunc directly.
2006-03-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran/17298
* gfortran.dg/transfer_array_intrinsic_1.f90: New test.
* gfortran.dg/transfer_array_intrinsic_2.f90: New test.
Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/transfer_array_intrinsic_1.f90
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/transfer_array_intrinsic_2.f90
Modified:
branches/gcc-4_1-branch/gcc/fortran/ChangeLog
branches/gcc-4_1-branch/gcc/fortran/trans-intrinsic.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (4 preceding siblings ...)
2006-03-22 20:00 ` pault at gcc dot gnu dot org
@ 2006-03-22 20:02 ` pault at gcc dot gnu dot org
2006-04-01 17:10 ` ebotcazou at gcc dot gnu dot org
` (11 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: pault at gcc dot gnu dot org @ 2006-03-22 20:02 UTC (permalink / raw)
To: gcc-bugs
------- Comment #12 from pault at gcc dot gnu dot org 2006-03-22 20:02 -------
Fixed on trank and 4.1.
Paul
--
pault at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (5 preceding siblings ...)
2006-03-22 20:02 ` pault at gcc dot gnu dot org
@ 2006-04-01 17:10 ` ebotcazou at gcc dot gnu dot org
2006-04-01 17:24 ` kargl at gcc dot gnu dot org
` (10 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2006-04-01 17:10 UTC (permalink / raw)
To: gcc-bugs
------- Comment #13 from ebotcazou at gcc dot gnu dot org 2006-04-01 17:10 -------
Is transfer_array_intrinsic_1.f90 portable to big-endian? It fails on SPARC.
Reduced testcase:
integer(4) :: y(4)
character(4) :: ch(4)
y = (/(i + ishft (i + 1, 8) + ishft (i + 2, 16) &
+ ishft (i + 3, 24), i = 65, 80 , 4)/)
ch = "wxyz"
ch = transfer (y(2:4:2), ch)
if (any (ch .ne. (/"EFGH","MNOP","wxyz","wxyz"/))) call abort ()
end
Breakpoint 1, MAIN__ () at transfer_array_intrinsic_1.f90:8
8 if (any (ch .ne. (/"EFGH","MNOP","wxyz","wxyz"/))) call abort ()
(gdb) p ch
$13 = (( 72 'H', 71 'G', 70 'F', 69 'E') ( 80 'P', 79 'O', 78 'N', 77 'M') (
119 'w', 120 'x', 121 'y', 122 'z') ( 119 'w', 120 'x', 121 'y', 122 'z') )
--
ebotcazou at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ebotcazou at gcc dot gnu dot
| |org
Status|RESOLVED |REOPENED
Resolution|FIXED |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (6 preceding siblings ...)
2006-04-01 17:10 ` ebotcazou at gcc dot gnu dot org
@ 2006-04-01 17:24 ` kargl at gcc dot gnu dot org
2006-04-01 20:05 ` ebotcazou at gcc dot gnu dot org
` (9 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: kargl at gcc dot gnu dot org @ 2006-04-01 17:24 UTC (permalink / raw)
To: gcc-bugs
------- Comment #14 from kargl at gcc dot gnu dot org 2006-04-01 17:24 -------
(In reply to comment #13)
> Is transfer_array_intrinsic_1.f90 portable to big-endian? It fails on SPARC.
>
No, it isn't portable to big endian. How are you executing this
test. I added a { target i?86-*-* x86_64-*-* } to the dg-do clause.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (7 preceding siblings ...)
2006-04-01 17:24 ` kargl at gcc dot gnu dot org
@ 2006-04-01 20:05 ` ebotcazou at gcc dot gnu dot org
2006-04-01 20:48 ` kargl at gcc dot gnu dot org
` (8 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2006-04-01 20:05 UTC (permalink / raw)
To: gcc-bugs
------- Comment #15 from ebotcazou at gcc dot gnu dot org 2006-04-01 20:05 -------
> No, it isn't portable to big endian. How are you executing this
> test.
gmake -k check-fortran. :-)
> I added a { target i?86-*-* x86_64-*-* } to the dg-do clause.
Not on the 4.1 branch. And why? Is there anything specific to x86 in the
test?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (8 preceding siblings ...)
2006-04-01 20:05 ` ebotcazou at gcc dot gnu dot org
@ 2006-04-01 20:48 ` kargl at gcc dot gnu dot org
2006-04-02 6:13 ` pinskia at gcc dot gnu dot org
` (7 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: kargl at gcc dot gnu dot org @ 2006-04-01 20:48 UTC (permalink / raw)
To: gcc-bugs
------- Comment #16 from kargl at gcc dot gnu dot org 2006-04-01 20:48 -------
(In reply to comment #15)
> > No, it isn't portable to big endian. How are you executing this
> > test.
>
> gmake -k check-fortran. :-)
>
> > I added a { target i?86-*-* x86_64-*-* } to the dg-do clause.
>
> Not on the 4.1 branch.
Whoops. I thought I had committed to both branches.
> And why? Is there anything specific to x86 in the test?
Because there isn't a { target-little-endian } dg directive.
Additionally, I knew pault was working on a general fix for
problem. I was just trying to permit big-endian system
ignore the testcase
Note, pault has submitted a new patch earlier today. I hope
to review it shortly.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (9 preceding siblings ...)
2006-04-01 20:48 ` kargl at gcc dot gnu dot org
@ 2006-04-02 6:13 ` pinskia at gcc dot gnu dot org
2006-04-02 6:21 ` ebotcazou at gcc dot gnu dot org
` (6 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-04-02 6:13 UTC (permalink / raw)
To: gcc-bugs
------- Comment #17 from pinskia at gcc dot gnu dot org 2006-04-02 06:13 -------
We already had this discussion and yes it is not portable but that has already
been fixed.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution| |FIXED
Target Milestone|--- |4.1.1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (10 preceding siblings ...)
2006-04-02 6:13 ` pinskia at gcc dot gnu dot org
@ 2006-04-02 6:21 ` ebotcazou at gcc dot gnu dot org
2006-04-02 6:27 ` pinskia at gcc dot gnu dot org
` (5 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2006-04-02 6:21 UTC (permalink / raw)
To: gcc-bugs
------- Comment #18 from ebotcazou at gcc dot gnu dot org 2006-04-02 06:21 -------
> We already had this discussion and yes it is not portable but that has already
> been fixed.
Andrew, you should really double-check what you say...
eric@linux:~/svn/gcc-4_1-branch/gcc/testsuite/gfortran.dg> svn update
transfer_array_intrinsic_1.f90
At revision 112621.
eric@linux:~/svn/gcc-4_1-branch/gcc/testsuite/gfortran.dg> cat
transfer_array_intrinsic_1.f90
! { dg-do run }
--
ebotcazou at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (11 preceding siblings ...)
2006-04-02 6:21 ` ebotcazou at gcc dot gnu dot org
@ 2006-04-02 6:27 ` pinskia at gcc dot gnu dot org
2006-04-02 6:36 ` ebotcazou at gcc dot gnu dot org
` (4 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-04-02 6:27 UTC (permalink / raw)
To: gcc-bugs
------- Comment #19 from pinskia at gcc dot gnu dot org 2006-04-02 06:27 -------
Does not matter, file a new bug about the testcase failing since this is only
the testcase.
See the thread starting at:
http://gcc.gnu.org/ml/fortran/2006-03/msg00487.html
The orginal bug has been fixed and there is no reason not to open a new bug
report to track the testcase failing.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (12 preceding siblings ...)
2006-04-02 6:27 ` pinskia at gcc dot gnu dot org
@ 2006-04-02 6:36 ` ebotcazou at gcc dot gnu dot org
2006-04-02 6:38 ` ebotcazou at gcc dot gnu dot org
` (3 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2006-04-02 6:36 UTC (permalink / raw)
To: gcc-bugs
------- Comment #20 from ebotcazou at gcc dot gnu dot org 2006-04-02 06:36 -------
> Does not matter, file a new bug about the testcase failing since this is only
> the testcase.
Please stop being so stubborn. :-) Anyway, I now hold you responsible for
making sure that something is done about the problem on the 4.1 branch.
--
ebotcazou at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (13 preceding siblings ...)
2006-04-02 6:36 ` ebotcazou at gcc dot gnu dot org
@ 2006-04-02 6:38 ` ebotcazou at gcc dot gnu dot org
2006-04-03 21:01 ` pinskia at gcc dot gnu dot org
` (2 subsequent siblings)
17 siblings, 0 replies; 25+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2006-04-02 6:38 UTC (permalink / raw)
To: gcc-bugs
------- Comment #21 from ebotcazou at gcc dot gnu dot org 2006-04-02 06:38 -------
Oops! I didn't mean to reopen it again...
--
ebotcazou at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution| |FIXED
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (14 preceding siblings ...)
2006-04-02 6:38 ` ebotcazou at gcc dot gnu dot org
@ 2006-04-03 21:01 ` pinskia at gcc dot gnu dot org
2006-05-03 1:51 ` RNMcLean at yahoo dot com
2006-05-06 8:02 ` paulthomas2 at wanadoo dot fr
17 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-04-03 21:01 UTC (permalink / raw)
To: gcc-bugs
------- Comment #22 from pinskia at gcc dot gnu dot org 2006-04-03 21:01 -------
*** Bug 27009 has been marked as a duplicate of this bug. ***
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |tobias dot burnus at physik
| |dot fu-berlin dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (15 preceding siblings ...)
2006-04-03 21:01 ` pinskia at gcc dot gnu dot org
@ 2006-05-03 1:51 ` RNMcLean at yahoo dot com
2006-05-06 8:02 ` paulthomas2 at wanadoo dot fr
17 siblings, 0 replies; 25+ messages in thread
From: RNMcLean at yahoo dot com @ 2006-05-03 1:51 UTC (permalink / raw)
To: gcc-bugs
------- Comment #23 from RNMcLean at yahoo dot com 2006-05-03 01:51 -------
(In reply to comment #2)
> Let me stress the importance of fixing this bug: it occurs in Basic Linear
> Algebra Subprograms (BLAS), in program dcabs1.f:
>
> double precision function dcabs1(z)
> double complex z
> double precision t(2)
> t=transfer(z,t)
> dcabs1 = dabs(t(1)) + dabs(t(2))
> return
> end
>
I'm unfamiliar with Bugzilla, so if I annoy anyone, apologies.
This routine is a puzzle, or else I have completely misunderstood it. The
TRANSFER is obviously spurious, as it merely allows the sort of renaming that
used to be possible with the deprecated EQUIVALENCE statement, were it to be
allowed for parameters.
But, why not
dcabs1 = abs(real(z)) + abs(aimag(z))
relying on proper precision selection (or, supply d prefixes).
Of course, in general the TRANSFER function should work.
Best wishes, RNMcLean somewhere by yahoo.com
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread
* [Bug fortran/17298] gfortran ICE: Not Implemented: Scalarization of non-elemental intrinsic: __transfer1
[not found] <bug-17298-6318@http.gcc.gnu.org/bugzilla/>
` (16 preceding siblings ...)
2006-05-03 1:51 ` RNMcLean at yahoo dot com
@ 2006-05-06 8:02 ` paulthomas2 at wanadoo dot fr
17 siblings, 0 replies; 25+ messages in thread
From: paulthomas2 at wanadoo dot fr @ 2006-05-06 8:02 UTC (permalink / raw)
To: gcc-bugs
------- Comment #24 from paulthomas2 at wanadoo dot fr 2006-05-06 08:02 -------
Subject: Re: gfortran ICE: Not Implemented: Scalarization
of non-elemental intrinsic: __transfer1
>I'm unfamiliar with Bugzilla, so if I annoy anyone, apologies.
>
>
You made a serious comment... you won't upset anyone!
> This routine is a puzzle, or else I have completely misunderstood it. The
>TRANSFER is obviously spurious, as it merely allows the sort of renaming that
>used to be possible with the deprecated EQUIVALENCE statement, were it to be
>allowed for parameters.
>
>
This is the nub of it; like equivalence, which is still supported in
gfortran, transfer effects a bitwise mapping from source to destination.
> But, why not
> dcabs1 = abs(real(z)) + abs(aimag(z))
> relying on proper precision selection (or, supply d prefixes).
>
>
... whereas real and aimag do kind conversion, if it is necessary.
> Of course, in general the TRANSFER function should work.
> Best wishes, RNMcLean somewhere by yahoo.com
>
>
In my opinion, real and aimag are better because they are likely to be
more efficient; transfer is looking (as I well know!) to do the general
case and needs to calculate source/destination sizes, whether or not
they are packed and so on.
Best regards
Paul Thomas
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17298
^ permalink raw reply [flat|nested] 25+ messages in thread