public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/107900] New: Select type with intrinsic type inside associate causes ICE / Segmenation fault
@ 2022-11-28 20:43 kaiserkarl31 at yahoo dot com
2022-11-28 20:54 ` [Bug fortran/107900] " anlauf at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: kaiserkarl31 at yahoo dot com @ 2022-11-28 20:43 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107900
Bug ID: 107900
Summary: Select type with intrinsic type inside associate
causes ICE / Segmenation fault
Product: gcc
Version: 12.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: kaiserkarl31 at yahoo dot com
Target Milestone: ---
Using a polymorphic derived type element in a select type statement is not
allowed, but placing it in an associate block causes an internal compiler error
if one of the "type is" statements includes an intrinsic type. The following
program is enough to reproduce it in GFortran 12.2.1:
program test
class(*), pointer :: ptr
associate (c => ptr)
select type (c)
type is (integer)
print *, 'integer'
end select
end associate
end program test
Note that the above program wouldn't run, as "ptr" isn't associated with
anything, but it shouldn't generate an ICE either.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/107900] Select type with intrinsic type inside associate causes ICE / Segmenation fault
2022-11-28 20:43 [Bug fortran/107900] New: Select type with intrinsic type inside associate causes ICE / Segmenation fault kaiserkarl31 at yahoo dot com
@ 2022-11-28 20:54 ` anlauf at gcc dot gnu.org
2023-06-16 17:01 ` pault at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: anlauf at gcc dot gnu.org @ 2022-11-28 20:54 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107900
anlauf at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2022-11-28
--- Comment #1 from anlauf at gcc dot gnu.org ---
Confirmed.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/107900] Select type with intrinsic type inside associate causes ICE / Segmenation fault
2022-11-28 20:43 [Bug fortran/107900] New: Select type with intrinsic type inside associate causes ICE / Segmenation fault kaiserkarl31 at yahoo dot com
2022-11-28 20:54 ` [Bug fortran/107900] " anlauf at gcc dot gnu.org
@ 2023-06-16 17:01 ` pault at gcc dot gnu.org
2023-06-21 16:06 ` cvs-commit at gcc dot gnu.org
2023-06-21 21:05 ` pault at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: pault at gcc dot gnu.org @ 2023-06-16 17:01 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107900
Paul Thomas <pault at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |pault at gcc dot gnu.org
--- Comment #2 from Paul Thomas <pault at gcc dot gnu.org> ---
Created attachment 55351
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55351&action=edit
Fix for this PR
Testcase:
! { dg-do run }
!
! Contributed by Karl Kaiser <kaiserkarl31@yahoo.com>
!
program test
class(*), pointer :: ptr1, ptr2(:)
integer, target :: i = 42
integer :: check = 0
! ptr1 => NULL() !This would fix the problem
associate (c => ptr1)
block
select type (d => c)
type is (integer)
stop 1
class default
check = 1
end select
end block
end associate
! Now do the same with the array version
! ptr2 => NULL() !This did not fix the problem
associate (c => ptr2)
block
select type (d => c)
type is (integer)
stop 2
class default
check = check + 10
end select
end block
end associate
if (check .ne. 11) stop 3
end program test
Regards
Paul
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/107900] Select type with intrinsic type inside associate causes ICE / Segmenation fault
2022-11-28 20:43 [Bug fortran/107900] New: Select type with intrinsic type inside associate causes ICE / Segmenation fault kaiserkarl31 at yahoo dot com
2022-11-28 20:54 ` [Bug fortran/107900] " anlauf at gcc dot gnu.org
2023-06-16 17:01 ` pault at gcc dot gnu.org
@ 2023-06-21 16:06 ` cvs-commit at gcc dot gnu.org
2023-06-21 21:05 ` pault at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-06-21 16:06 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107900
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Paul Thomas <pault@gcc.gnu.org>:
https://gcc.gnu.org/g:577223aebc7acdd31e62b33c1682fe54a622ae27
commit r14-2022-g577223aebc7acdd31e62b33c1682fe54a622ae27
Author: Paul Thomas <pault@gcc.gnu.org>
Date: Wed Jun 21 17:05:58 2023 +0100
Fortran: Fix some bugs in associate [PR87477]
2023-06-21 Paul Thomas <pault@gcc.gnu.org>
gcc/fortran
PR fortran/87477
PR fortran/88688
PR fortran/94380
PR fortran/107900
PR fortran/110224
* decl.cc (char_len_param_value): Fix memory leak.
(resolve_block_construct): Remove unnecessary static decls.
* expr.cc (gfc_is_ptr_fcn): New function.
(gfc_check_vardef_context): Use it to permit pointer function
result selectors to be used for associate names in variable
definition context.
* gfortran.h: Prototype for gfc_is_ptr_fcn.
* match.cc (build_associate_name): New function.
(gfc_match_select_type): Use the new function to replace inline
version and to build a new associate name for the case where
the supplied associate name is already used for that purpose.
* resolve.cc (resolve_assoc_var): Call gfc_is_ptr_fcn to allow
associate names with pointer function targets to be used in
variable definition context.
* trans-decl.cc (gfc_get_symbol_decl): Unlimited polymorphic
variables need deferred initialisation of the vptr.
(gfc_trans_deferred_vars): Do the vptr initialisation.
* trans-stmt.cc (trans_associate_var): Ensure that a pointer
associate name points to the target of the selector and not
the selector itself.
gcc/testsuite/
PR fortran/87477
PR fortran/107900
* gfortran.dg/pr107900.f90 : New test
PR fortran/110224
* gfortran.dg/pr110224.f90 : New test
PR fortran/88688
* gfortran.dg/pr88688.f90 : New test
PR fortran/94380
* gfortran.dg/pr94380.f90 : New test
PR fortran/95398
* gfortran.dg/pr95398.f90 : Set -std=f2008, bump the line
numbers in the error tests by two and change the text in two.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug fortran/107900] Select type with intrinsic type inside associate causes ICE / Segmenation fault
2022-11-28 20:43 [Bug fortran/107900] New: Select type with intrinsic type inside associate causes ICE / Segmenation fault kaiserkarl31 at yahoo dot com
` (2 preceding siblings ...)
2023-06-21 16:06 ` cvs-commit at gcc dot gnu.org
@ 2023-06-21 21:05 ` pault at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: pault at gcc dot gnu.org @ 2023-06-21 21:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107900
Paul Thomas <pault at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #4 from Paul Thomas <pault at gcc dot gnu.org> ---
Fixed on trunk and closing.
I will build a composite patch for 13-branch in a few weeks.
Thanks for the report
Paul
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-06-21 21:05 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-28 20:43 [Bug fortran/107900] New: Select type with intrinsic type inside associate causes ICE / Segmenation fault kaiserkarl31 at yahoo dot com
2022-11-28 20:54 ` [Bug fortran/107900] " anlauf at gcc dot gnu.org
2023-06-16 17:01 ` pault at gcc dot gnu.org
2023-06-21 16:06 ` cvs-commit at gcc dot gnu.org
2023-06-21 21:05 ` pault 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).