public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug fortran/67528] New: Wrong result with defined assignment operator and/or parenthesized expressions and allocatable components @ 2015-09-09 17:39 mrestelli at gmail dot com 2015-09-09 20:18 ` [Bug fortran/67528] " kargl at gcc dot gnu.org ` (3 more replies) 0 siblings, 4 replies; 5+ messages in thread From: mrestelli at gmail dot com @ 2015-09-09 17:39 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67528 Bug ID: 67528 Summary: Wrong result with defined assignment operator and/or parenthesized expressions and allocatable components Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: mrestelli at gmail dot com Target Milestone: --- As discussed in https://groups.google.com/d/msg/comp.lang.fortran/8q2nYfHnZfU/M9FmGgx7AQAJ gfortran produces wrong results with the attached code (details are included in the source) $ gfortran --version GNU Fortran (GCC) 6.0.0 20150907 (experimental) module m implicit none type :: t_a real, allocatable :: x end type t_a interface assignment(=) module procedure copy_t_a end interface contains subroutine copy_t_a(y,x) type(t_a), intent(in) :: x type(t_a), intent(out) :: y allocate( y%x , source=x%x) end subroutine copy_t_a end module m program p use m implicit none type(t_a) :: v1 ! Define v1 allocate( v1%x ) v1%x = 1.5 ! This produces segfault v1 = v1 write(*,*) "Case A: v1%x = ",v1%x ! should print 1.5 ! This produces segfault !v1 = (v1) !write(*,*) "Case B: v1%x = ",v1%x ! should print 1.5 ! This prints 0 !call copy_t_a( v1 , (v1) ) !write(*,*) "Case C: v1%x = ",v1%x ! should print 1.5 end program p ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/67528] Wrong result with defined assignment operator and/or parenthesized expressions and allocatable components 2015-09-09 17:39 [Bug fortran/67528] New: Wrong result with defined assignment operator and/or parenthesized expressions and allocatable components mrestelli at gmail dot com @ 2015-09-09 20:18 ` kargl at gcc dot gnu.org 2015-09-09 21:46 ` kargl at gcc dot gnu.org ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: kargl at gcc dot gnu.org @ 2015-09-09 20:18 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67528 kargl at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-09-09 CC| |kargl at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from kargl at gcc dot gnu.org --- Possible patch https://gcc.gnu.org/ml/fortran/2015-09/msg00058.html The essence of the issue is that the assignments aren't being translates to the call. v1 = v1 --> call copy_t_a(v1, (v1)) vi = (v1) --> call copy_t_a(vi, ((v1))) ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/67528] Wrong result with defined assignment operator and/or parenthesized expressions and allocatable components 2015-09-09 17:39 [Bug fortran/67528] New: Wrong result with defined assignment operator and/or parenthesized expressions and allocatable components mrestelli at gmail dot com 2015-09-09 20:18 ` [Bug fortran/67528] " kargl at gcc dot gnu.org @ 2015-09-09 21:46 ` kargl at gcc dot gnu.org 2015-10-25 22:39 ` dominiq at lps dot ens.fr 2015-10-26 13:49 ` dominiq at lps dot ens.fr 3 siblings, 0 replies; 5+ messages in thread From: kargl at gcc dot gnu.org @ 2015-09-09 21:46 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67528 --- Comment #2 from kargl at gcc dot gnu.org --- This bug report appears to be a related to PR59202 and may be a duplicate. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/67528] Wrong result with defined assignment operator and/or parenthesized expressions and allocatable components 2015-09-09 17:39 [Bug fortran/67528] New: Wrong result with defined assignment operator and/or parenthesized expressions and allocatable components mrestelli at gmail dot com 2015-09-09 20:18 ` [Bug fortran/67528] " kargl at gcc dot gnu.org 2015-09-09 21:46 ` kargl at gcc dot gnu.org @ 2015-10-25 22:39 ` dominiq at lps dot ens.fr 2015-10-26 13:49 ` dominiq at lps dot ens.fr 3 siblings, 0 replies; 5+ messages in thread From: dominiq at lps dot ens.fr @ 2015-10-25 22:39 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67528 Dominique d'Humieres <dominiq at lps dot ens.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pault at gcc dot gnu.org --- Comment #3 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- AFAICT this PR is fixed after revision r229303. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/67528] Wrong result with defined assignment operator and/or parenthesized expressions and allocatable components 2015-09-09 17:39 [Bug fortran/67528] New: Wrong result with defined assignment operator and/or parenthesized expressions and allocatable components mrestelli at gmail dot com ` (2 preceding siblings ...) 2015-10-25 22:39 ` dominiq at lps dot ens.fr @ 2015-10-26 13:49 ` dominiq at lps dot ens.fr 3 siblings, 0 replies; 5+ messages in thread From: dominiq at lps dot ens.fr @ 2015-10-26 13:49 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67528 --- Comment #4 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- > AFAICT this PR is fixed after revision r229303. Well, this is not true with -O and above. If i compile the code with '-O0 -fsanitize=address,undefined' I get at run time pr67528.f90:17: runtime error: load of null pointer of type 'real(kind=4)' Case A: v1%x = -0.372548997 and with '-O -fsanitize=address,undefined' pr67528.f90:17: runtime error: load of null pointer of type 'real(kind=4)' ASAN:DEADLYSIGNAL ================================================================= ==36379==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x00010c738887 bp 0x000000000000 sp 0x7fff534c8130 T0) #0 0x10c738886 in __m_MOD_copy_t_a (a.out+0x100001886) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV (a.out+0x100001886) in __m_MOD_copy_t_a ==36379==ABORTING Program received signal SIGABRT: Process abort signal. Backtrace for this error: #0 0x10d4866a4 #1 0x10d485aa5 #2 0x7fff8f8aff19 Abort ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-10-26 13:49 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-09-09 17:39 [Bug fortran/67528] New: Wrong result with defined assignment operator and/or parenthesized expressions and allocatable components mrestelli at gmail dot com 2015-09-09 20:18 ` [Bug fortran/67528] " kargl at gcc dot gnu.org 2015-09-09 21:46 ` kargl at gcc dot gnu.org 2015-10-25 22:39 ` dominiq at lps dot ens.fr 2015-10-26 13:49 ` dominiq at lps dot ens.fr
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).