https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
Mikael Morin changed:
What|Removed |Added
Status|ASSIGNED|RESOLVED
Resolution|---
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #20 from CVS Commits ---
The master branch has been updated by Mikael Morin :
https://gcc.gnu.org/g:564b637f4a32883cbf3c3019d3cfcf0b0aec9b82
commit r14-3207-g564b637f4a32883cbf3c3019d3cfcf0b0aec9b82
Author: Mikael Morin
Date:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
Mikael Morin changed:
What|Removed |Added
Status|NEW |ASSIGNED
Assignee|unassigned
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #18 from Mikael Morin ---
Created attachment 55662
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55662=edit
Updated tentative patch
This fixes comment #4 as well, but the failure on value_9 remains on 32 bit
powerpc.
It is
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #17 from Mikael Morin ---
Created attachment 55660
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55660=edit
Update function type patch
This patch changes the dummy argument declaration type.
It changes the dump as follows.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
David Edelsohn changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
CC|
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #15 from Mikael Morin ---
rs6000_pass_by_reference returns true with -m32, and false with -m64.
So the second argument is passed by reference with -m32, and by value with
-m64.
So the code in val looks right, it is the code in p
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #14 from Mikael Morin ---
The tree optimized dumps are almost the same for 32 and 64 bits.
The expand dumps show more significant differences.
The 64 bits dump shows the register r4 is saved to memory with:
(insn 3 2 4 2 (set
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #13 from Mikael Morin ---
Created attachment 55488
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55488=edit
-m64 rtl final dump at -O0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #12 from Mikael Morin ---
Created attachment 55487
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55487=edit
-m64 rtl expand dump at -O0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #11 from Mikael Morin ---
Created attachment 55486
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55486=edit
-m64tree optimized (at -O0) dump
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #10 from Mikael Morin ---
The three previous dumps are generated with the example in comment #4.
The problem seems to turn around the val function needing to take the address
of the c argument, which is passed by value.
On powerpc,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #9 from Mikael Morin ---
Created attachment 55480
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55480=edit
-m32 final rtl dump at -O0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #8 from Mikael Morin ---
Created attachment 55479
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55479=edit
-m32 rtl exand dump at -O0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #7 from Mikael Morin ---
Created attachment 55478
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55478=edit
-m32 tree optimized (at -O0) dump
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #6 from Mikael Morin ---
I finally got my access on gcc110 working.
(gdb) r
Starting program: /home/mmorin/gcc-pr110360/pr110360/pr110419_comment4
Program received signal SIGSEGV, Segmentation fault.
0x1684 in val (x=...,
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #5 from anlauf at gcc dot gnu.org ---
The testers show a similar behavior on sparcv9-sun-solaris2.11:
OK at -m64, FAIL at -m32. Not sure which endianness that is.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #4 from anlauf at gcc dot gnu.org ---
It appears that the issue could be studied with the following code:
program p
implicit none
integer :: a = 65
call val ("A", char(a))
contains
subroutine val (x, c)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #3 from seurer at gcc dot gnu.org ---
I just tried r14-2190-ge972bdce61cc52 on another BE machine and got:
spawn [open ...]
by value(kind=1): B
by value(kind=1): A
Program received signal SIGSEGV: Segmentation fault - invalid
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
--- Comment #2 from Mikael Morin ---
(In reply to Mikael Morin from comment #1)
> Harald committed an additional fix to the PR:
>
Unfortunately, the failure on big endian power remains.
Is the execution output the same as before?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
Mikael Morin changed:
What|Removed |Added
CC||mikael at gcc dot gnu.org
--- Comment
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110419
Richard Biener changed:
What|Removed |Added
Keywords||testsuite-fail
22 matches
Mail list logo