public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
@ 2014-02-14 8:39 bernd.edlinger at hotmail dot de
2014-02-14 8:42 ` [Bug fortran/60191] " pinskia at gcc dot gnu.org
` (13 more replies)
0 siblings, 14 replies; 15+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2014-02-14 8:39 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
Bug ID: 60191
Summary: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on
ARMv7
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: bernd.edlinger at hotmail dot de
This test case fails only with -O0, that's interesting.
gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/ed/gnu/arm-linux-gnueabihf/libexec/gcc/armv7l-unknown-linux-gnueabihf/4.9.0/lto-wrapper
Target: armv7l-unknown-linux-gnueabihf
Configured with: ../gcc-4.9-20140209/configure
--prefix=/home/ed/gnu/arm-linux-gnueabihf
--enable-languages=c,c++,objc,obj-c++,fortran,ada,go --with-arch=armv7-a
--with-tune=cortex-a9 --with-fpu=vfpv3-d16 --with-float=hard
Thread model: posix
gcc version 4.9.0 20140209 (experimental) (GCC)
Debuging the first test case shows this:
The following function gets called:
(gdb) disass make_real
Dump of assembler code for function __m_MOD_make_real:
0x000086d8 <+0>: push {r11} ; (str r11, [sp, #-4]!)
0x000086dc <+4>: add r11, sp, #0
0x000086e0 <+8>: sub sp, sp, #20
0x000086e4 <+12>: str r0, [r11, #-16]
0x000086e8 <+16>: ldr r3, [r11, #-16]
0x000086ec <+20>: ldr r3, [r3]
0x000086f0 <+24>: ldr r3, [r3]
0x000086f4 <+28>: vmov s15, r3
0x000086f8 <+32>: vcvt.f32.s32 s15, s15
0x000086fc <+36>: vstr s15, [r11, #-8]
0x00008700 <+40>: ldr r3, [r11, #-8]
0x00008704 <+44>: vmov s15, r3
0x00008708 <+48>: vmov.f32 s0, s15
0x0000870c <+52>: sub sp, r11, #0
0x00008710 <+56>: pop {r11} ; (ldr r11, [sp], #4)
0x00008714 <+60>: bx lr
the result is returned in register s0 (42.0)
but the caller expects it in register r0.
0x00008754 <+0>: push {r11, lr}
0x00008758 <+4>: add r11, sp, #4
0x0000875c <+8>: sub sp, sp, #8
0x00008760 <+12>: movw r3, #35292 ; 0x89dc
0x00008764 <+16>: movt r3, #0
0x00008768 <+20>: str r3, [r11, #-8]
0x0000876c <+24>: movw r3, #3032 ; 0xbd8
0x00008770 <+28>: movt r3, #1
0x00008774 <+32>: str r3, [r11, #-12]
0x00008778 <+36>: ldr r3, [r11, #-8]
0x0000877c <+40>: ldr r3, [r3, #32]
0x00008780 <+44>: sub r2, r11, #12
0x00008784 <+48>: mov r0, r2
0x00008788 <+52>: blx r3
0x0000878c <+56>: vmov s14, r0
=> 0x00008790 <+60>: vldr s15, [pc, #400] ; 0x8928 <MAIN__+468>
0x00008794 <+64>: vcmp.f32 s14, s15
0x00008798 <+68>: vmrs APSR_nzcv, fpscr
0x0000879c <+72>: beq 0x87a4 <MAIN__+80>
0x000087a0 <+76>: bl 0x8428 <_gfortran_abort>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
@ 2014-02-14 8:42 ` pinskia at gcc dot gnu.org
2014-02-15 17:00 ` janus at gcc dot gnu.org
` (12 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: pinskia at gcc dot gnu.org @ 2014-02-14 8:42 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This sounds like the front-end is not producing the correct function type for
the call.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
2014-02-14 8:42 ` [Bug fortran/60191] " pinskia at gcc dot gnu.org
@ 2014-02-15 17:00 ` janus at gcc dot gnu.org
2014-02-16 10:03 ` bernd.edlinger at hotmail dot de
` (11 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: janus at gcc dot gnu.org @ 2014-02-15 17:00 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
--- Comment #2 from janus at gcc dot gnu.org ---
The function "make_real" is not invoked directly, but through the type-bound
"a%real", which is called three times in the test case. Does the failure occur
already at the first one (i.e. line 67)? Can you give a reduced test case?
The type-bound call is transformed into a procedure-pointer-component call,
i.e. "a._vptr->real (&a)". Do all the proc_ptr_comp_* test cases work on ARMv7?
Does the failure only happen with trunk or also with earlier versions?
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
2014-02-14 8:42 ` [Bug fortran/60191] " pinskia at gcc dot gnu.org
2014-02-15 17:00 ` janus at gcc dot gnu.org
@ 2014-02-16 10:03 ` bernd.edlinger at hotmail dot de
2014-02-16 10:47 ` dominiq at lps dot ens.fr
` (10 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2014-02-16 10:03 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
--- Comment #3 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
(In reply to janus from comment #2)
> The function "make_real" is not invoked directly, but through the type-bound
> "a%real", which is called three times in the test case. Does the failure
> occur already at the first one (i.e. line 67)? Can you give a reduced test
> case?
Yes it is in line 67. Maybe I will have
> The type-bound call is transformed into a procedure-pointer-component
> call, i.e. "a._vptr->real (&a)". Do all the proc_ptr_comp_* test cases work
> on ARMv7?
Yes, the test cases that failed with the last snapshot are:
FAIL: gfortran.dg/dynamic_dispatch_1.f03 -O0 execution test
FAIL: gfortran.dg/dynamic_dispatch_3.f03 -O0 execution test
FAIL: gfortran.dg/select_type_4.f90 -O2 execution test
FAIL: gfortran.dg/select_type_4.f90 -O3 -fomit-frame-pointer execution test
FAIL: gfortran.dg/select_type_4.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
FAIL: gfortran.dg/select_type_4.f90 -O3 -fomit-frame-pointer
-funroll-all-loops -finline-functions execution test
FAIL: gfortran.dg/select_type_4.f90 -O3 -g execution test
FAIL: gfortran.dg/stat_1.f90 -O0 execution test
FAIL: gfortran.dg/stat_1.f90 -O1 execution test
FAIL: gfortran.dg/stat_1.f90 -O2 execution test
FAIL: gfortran.dg/stat_1.f90 -O3 -fomit-frame-pointer execution test
FAIL: gfortran.dg/stat_1.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
FAIL: gfortran.dg/stat_1.f90 -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions execution test
FAIL: gfortran.dg/stat_1.f90 -O3 -g execution test
FAIL: gfortran.dg/stat_1.f90 -Os execution test
FAIL: gfortran.dg/stat_2.f90 -O0 execution test
FAIL: gfortran.dg/stat_2.f90 -O1 execution test
FAIL: gfortran.dg/stat_2.f90 -O2 execution test
FAIL: gfortran.dg/stat_2.f90 -O3 -fomit-frame-pointer execution test
FAIL: gfortran.dg/stat_2.f90 -O3 -fomit-frame-pointer -funroll-loops
execution test
FAIL: gfortran.dg/stat_2.f90 -O3 -fomit-frame-pointer -funroll-all-loops
-finline-functions execution test
FAIL: gfortran.dg/stat_2.f90 -O3 -g execution test
FAIL: gfortran.dg/stat_2.f90 -Os execution test
FAIL: gfortran.dg/vect/pr32380.f -O scan-tree-dump-times vect "vectorized 6
loops" 1
Maybe I will have some time to look at the other test cases next week.
> Does the failure only happen with trunk or also with earlier
> versions?
I did only try the trunk,
I'd expect the build-configuration (using hard float)
to influence the ABI.
This will likely not happen on a ARMv5, without FPU registers.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
` (2 preceding siblings ...)
2014-02-16 10:03 ` bernd.edlinger at hotmail dot de
@ 2014-02-16 10:47 ` dominiq at lps dot ens.fr
2014-02-16 11:53 ` janus at gcc dot gnu.org
` (9 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: dominiq at lps dot ens.fr @ 2014-02-16 10:47 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
Dominique d'Humieres <dominiq at lps dot ens.fr> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |WAITING
Last reconfirmed| |2014-02-16
Ever confirmed|0 |1
--- Comment #4 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
(In reply to Bernd from comment #3)
IIRC the tests gfortran.dg/stat_(1|2).f90 fail if the user's uid or gid are
different from those of the directory in which the tests are run (see pr42900).
If for some reason you cannot run the tests with user's IDs matching those of
the working directory, these tests will always fail.
For the other failures, are they regressions or is it the first time they are
tested on armv7l-unknown-linux-gnueabihf?
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
` (3 preceding siblings ...)
2014-02-16 10:47 ` dominiq at lps dot ens.fr
@ 2014-02-16 11:53 ` janus at gcc dot gnu.org
2014-02-16 12:28 ` bernd.edlinger at hotmail dot de
` (8 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: janus at gcc dot gnu.org @ 2014-02-16 11:53 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
janus at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
--- Comment #5 from janus at gcc dot gnu.org ---
(In reply to Bernd Edlinger from comment #3)
> > The function "make_real" is not invoked directly, but through the type-bound
> > "a%real", which is called three times in the test case. Does the failure
> > occur already at the first one (i.e. line 67)? Can you give a reduced test
> > case?
>
> Yes it is in line 67.
Ok, then I guess the following reduction should be enough to trigger the bug?
module m
type :: t1
integer :: i = 42
contains
procedure, pass :: real => make_real
end type
contains
real function make_real (arg)
class(t1), intent(in) :: arg
make_real = real (arg%i)
end function make_real
end module m
use m
class(t1), pointer :: a
type(t1), target :: b
a => b
if (a%real() .ne. real (42)) call abort
end
Additionally you could try if calling 'make_real' directly (without the
type-binding) works, i.e. replace the last line by:
if (make_real(a) .ne. real (42)) call abort
> > The type-bound call is transformed into a procedure-pointer-component
> > call, i.e. "a._vptr->real (&a)". Do all the proc_ptr_comp_* test cases work
> > on ARMv7?
>
> Yes, the test cases that failed with the last snapshot are:
>
> FAIL: gfortran.dg/dynamic_dispatch_1.f03 -O0 execution test
> FAIL: gfortran.dg/dynamic_dispatch_3.f03 -O0 execution test
> FAIL: gfortran.dg/select_type_4.f90 -O2 execution test
This one might possibly be related. It also involves polymorphism (but no
type-bound procedures).
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
` (4 preceding siblings ...)
2014-02-16 11:53 ` janus at gcc dot gnu.org
@ 2014-02-16 12:28 ` bernd.edlinger at hotmail dot de
2014-02-17 7:55 ` bernd.edlinger at hotmail dot de
` (7 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2014-02-16 12:28 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
--- Comment #6 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
(In reply to Dominique d'Humieres from comment #4)
> (In reply to Bernd from comment #3)
> IIRC the tests gfortran.dg/stat_(1|2).f90 fail if the user's uid or gid are
> different from those of the directory in which the tests are run (see
> pr42900). If for some reason you cannot run the tests with user's IDs
> matching those of the working directory, these tests will always fail.
>
Ok, thanks. That would explain this one:
My target does not have a hard disk, so I mounted everything
with nfs and the user/group gets squashed by the server.
I log in with root at the target, but everything on the nfs share
is owned by nobody, nogroup I think. But I can fix that somehow.
> For the other failures, are they regressions or is it the first time they
> are tested on armv7l-unknown-linux-gnueabihf?
Given how hard it was to boot strap everything on that target,
(I started in december!), I don't think anybody did that before.
The target itself was built from scratch with cross-compilers.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
` (5 preceding siblings ...)
2014-02-16 12:28 ` bernd.edlinger at hotmail dot de
@ 2014-02-17 7:55 ` bernd.edlinger at hotmail dot de
2014-02-17 8:17 ` bernd.edlinger at hotmail dot de
` (6 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2014-02-17 7:55 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
--- Comment #7 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
Created attachment 32150
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32150&action=edit
reduced test case
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
` (6 preceding siblings ...)
2014-02-17 7:55 ` bernd.edlinger at hotmail dot de
@ 2014-02-17 8:17 ` bernd.edlinger at hotmail dot de
2014-03-25 12:17 ` burnus at gcc dot gnu.org
` (5 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2014-02-17 8:17 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
--- Comment #8 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
(In reply to janus from comment #5)
> (In reply to Bernd Edlinger from comment #3)
> > > The function "make_real" is not invoked directly, but through the type-bound
> > > "a%real", which is called three times in the test case. Does the failure
> > > occur already at the first one (i.e. line 67)? Can you give a reduced test
> > > case?
> >
> > Yes it is in line 67.
>
> Ok, then I guess the following reduction should be enough to trigger the bug?
>
>
> module m
>
> type :: t1
> integer :: i = 42
> contains
> procedure, pass :: real => make_real
> end type
>
> contains
>
> real function make_real (arg)
> class(t1), intent(in) :: arg
> make_real = real (arg%i)
> end function make_real
>
> end module m
>
> use m
> class(t1), pointer :: a
> type(t1), target :: b
> a => b
> if (a%real() .ne. real (42)) call abort
> end
>
>
The crash occurs if I add the line "procedure(make_real), pointer :: ptr"
to type t1.
> Additionally you could try if calling 'make_real' directly (without the
> type-binding) works, i.e. replace the last line by:
>
> if (make_real(a) .ne. real (42)) call abort
>
>
This line does not abort.
> > > The type-bound call is transformed into a procedure-pointer-component
> > > call, i.e. "a._vptr->real (&a)". Do all the proc_ptr_comp_* test cases work
> > > on ARMv7?
> >
> > Yes, the test cases that failed with the last snapshot are:
> >
> > FAIL: gfortran.dg/dynamic_dispatch_1.f03 -O0 execution test
> > FAIL: gfortran.dg/dynamic_dispatch_3.f03 -O0 execution test
> > FAIL: gfortran.dg/select_type_4.f90 -O2 execution test
>
> This one might possibly be related. It also involves polymorphism (but no
> type-bound procedures).
I think dynamic_dispatch_3.f03 duplicates this one.
But I am not sure about select_type_4.f90:
$ gfortran -O1 -g select_type_4.f90 -o select_type_4
$ ./select_type_4
1.23000002
42
Node with no data.
Some other node type.
4.55999994
$ gfortran -O2 -g select_type_4.f90 -o select_type_4
$ ./select_type_4
1.23000002
42
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
Segmentation fault
Program received signal SIGSEGV, Segmentation fault.
MAIN__ () at select_type_4.f90:166
166 if (cnt /= 4) call abort()
but this statement is executed for the third time when the chash happens:
Breakpoint 2, MAIN__ () at select_type_4.f90:166
166 if (cnt /= 4) call abort()
2: /x $r2 = 0x8db4
1: x/i $pc
=> 0x8b14 <MAIN__+608>: ldr r3, [r2]
(gdb) c
Continuing.
1.23000002
Breakpoint 2, MAIN__ () at select_type_4.f90:166
166 if (cnt /= 4) call abort()
2: /x $r2 = 0x8dcc
1: x/i $pc
=> 0x8b14 <MAIN__+608>: ldr r3, [r2]
(gdb) c
Continuing.
42
Breakpoint 2, MAIN__ () at select_type_4.f90:166
166 if (cnt /= 4) call abort()
2: /x $r2 = 0xf15aea17
1: x/i $pc
=> 0x8b14 <MAIN__+608>: ldr r3, [r2]
this looks like some loop optimization problem.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
` (7 preceding siblings ...)
2014-02-17 8:17 ` bernd.edlinger at hotmail dot de
@ 2014-03-25 12:17 ` burnus at gcc dot gnu.org
2014-03-25 14:48 ` bernd.edlinger at hotmail dot de
` (4 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: burnus at gcc dot gnu.org @ 2014-03-25 12:17 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
Tobias Burnus <burnus at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-code
CC| |burnus at gcc dot gnu.org
--- Comment #10 from Tobias Burnus <burnus at gcc dot gnu.org> ---
(In reply to Bernd Edlinger from comment #9)
> Varargs functions return a float result in r0
> Normal functions returns a float result in s0.
>
> If there were float arguments they would not be passed
> on FPU-Registers for varargs functions, but because fortran
> passes every in-parameter by reference that is not visible.
That sounds difficult to fix.
gfortran currently generates when it does not know the explicit interface
something like:
float funct(...)
which for normal functions can be updated via the use of the function
a = funct(1.0) ! => one argument of type real.
[This updated of the interface base on the usage is not yet implemented and
some PR exists for this; I think it is PR44471.]
The problem is with procedure pointers of the form
procedure(real), pointer :: ptr
Those can point to any function returning a "real" - and one can have different
ones at different places in the program. - I have no idea how to solve this.
[Note: Fortran does not support variadic arguments.]
[Side note: Fortran also permits to use "procedure(make_real),pointer", which
provides the proper interface.]
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
` (8 preceding siblings ...)
2014-03-25 12:17 ` burnus at gcc dot gnu.org
@ 2014-03-25 14:48 ` bernd.edlinger at hotmail dot de
2014-03-31 9:14 ` mikael at gcc dot gnu.org
` (3 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2014-03-25 14:48 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
--- Comment #12 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
Created attachment 32448
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32448&action=edit
possible fix
Ok, the attached patch seems to fix at least the
dynamic_dispatch_X.f03 test cases on ARMv7 with float-abi=hard.
No regressions on X86_64 so far.
I will run the ARMv7 test suite over the next days.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
` (9 preceding siblings ...)
2014-03-25 14:48 ` bernd.edlinger at hotmail dot de
@ 2014-03-31 9:14 ` mikael at gcc dot gnu.org
2014-04-04 13:55 ` edlinger at gcc dot gnu.org
` (2 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: mikael at gcc dot gnu.org @ 2014-03-31 9:14 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
Mikael Morin <mikael at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mikael at gcc dot gnu.org
--- Comment #13 from Mikael Morin <mikael at gcc dot gnu.org> ---
Patch posted at
http://gcc.gnu.org/ml/gcc-patches/2014-03/msg01690.html
I have no time to review it now, so I'm just adding a cross-reference to
where the error_mark_node thing comes from:
It comes from http://gcc.gnu.org/r195890 or namely pr54107.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
` (10 preceding siblings ...)
2014-03-31 9:14 ` mikael at gcc dot gnu.org
@ 2014-04-04 13:55 ` edlinger at gcc dot gnu.org
2014-04-05 6:13 ` bernd.edlinger at hotmail dot de
2014-04-10 20:14 ` edlinger at gcc dot gnu.org
13 siblings, 0 replies; 15+ messages in thread
From: edlinger at gcc dot gnu.org @ 2014-04-04 13:55 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
--- Comment #14 from edlinger at gcc dot gnu.org ---
Author: edlinger
Date: Fri Apr 4 13:54:16 2014
New Revision: 209091
URL: http://gcc.gnu.org/viewcvs?rev=209091&root=gcc&view=rev
Log:
2014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR fortran/60191
* fortran/trans-types.c (gfc_get_function_type): In case of recursion
build a variadic function type with empty argument list instead of a
stdarg-like function type with incomplete argument list.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/fortran/trans-types.c
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
` (11 preceding siblings ...)
2014-04-04 13:55 ` edlinger at gcc dot gnu.org
@ 2014-04-05 6:13 ` bernd.edlinger at hotmail dot de
2014-04-10 20:14 ` edlinger at gcc dot gnu.org
13 siblings, 0 replies; 15+ messages in thread
From: bernd.edlinger at hotmail dot de @ 2014-04-05 6:13 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
Bernd Edlinger <bernd.edlinger at hotmail dot de> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #15 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
fixed.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug fortran/60191] test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
` (12 preceding siblings ...)
2014-04-05 6:13 ` bernd.edlinger at hotmail dot de
@ 2014-04-10 20:14 ` edlinger at gcc dot gnu.org
13 siblings, 0 replies; 15+ messages in thread
From: edlinger at gcc dot gnu.org @ 2014-04-10 20:14 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60191
--- Comment #16 from edlinger at gcc dot gnu.org ---
Author: edlinger
Date: Thu Apr 10 20:13:23 2014
New Revision: 209282
URL: http://gcc.gnu.org/viewcvs?rev=209282&root=gcc&view=rev
Log:
moved this ChangeLog entry to fortran/ChangeLog
2014-04-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR fortran/60191
* fortran/trans-types.c (gfc_get_function_type): In case of recursion
build a variadic function type with empty argument list instead of a
stdarg-like function type with incomplete argument list.
Modified:
trunk/gcc/ChangeLog
trunk/gcc/fortran/ChangeLog
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2014-04-10 20:14 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-14 8:39 [Bug fortran/60191] New: test case gfortran.dg/dynamic_dispatch_1/3.f03 fail on ARMv7 bernd.edlinger at hotmail dot de
2014-02-14 8:42 ` [Bug fortran/60191] " pinskia at gcc dot gnu.org
2014-02-15 17:00 ` janus at gcc dot gnu.org
2014-02-16 10:03 ` bernd.edlinger at hotmail dot de
2014-02-16 10:47 ` dominiq at lps dot ens.fr
2014-02-16 11:53 ` janus at gcc dot gnu.org
2014-02-16 12:28 ` bernd.edlinger at hotmail dot de
2014-02-17 7:55 ` bernd.edlinger at hotmail dot de
2014-02-17 8:17 ` bernd.edlinger at hotmail dot de
2014-03-25 12:17 ` burnus at gcc dot gnu.org
2014-03-25 14:48 ` bernd.edlinger at hotmail dot de
2014-03-31 9:14 ` mikael at gcc dot gnu.org
2014-04-04 13:55 ` edlinger at gcc dot gnu.org
2014-04-05 6:13 ` bernd.edlinger at hotmail dot de
2014-04-10 20:14 ` edlinger at gcc dot gnu.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).