From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7457 invoked by alias); 22 Nov 2007 21:48:52 -0000 Received: (qmail 7379 invoked by uid 48); 22 Nov 2007 21:48:41 -0000 Date: Thu, 22 Nov 2007 21:48:00 -0000 Subject: [Bug fortran/34199] New: segfault for TRANSFER integer to TYPE(C_PTR) X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "burnus at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-11/txt/msg02172.txt.bz2 Found by James Van Buskirk at http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/c8dd08d6da052499/ The following program gives an ICE in transfer; one may argue whether it is valid or not, but I would expect that it works on all systems. The crash occurs in: ==28354== at 0x477713: gfc_interpret_derived (target-memory.c:422) ==28354== by 0x4773DE: gfc_target_interpret_expr (target-memory.c:474) ==28354== by 0x46AA47: gfc_simplify_transfer (simplify.c:4103) ==28354== by 0x42A6A2: do_simplify (intrinsic.c:3186) which is: ptr = TREE_INT_CST_LOW (DECL_FIELD_OFFSET (cmp->backend_decl)); Using NAG f95 and ifort, it works and prints ".FALSE.". program bug2_transfer use ISO_C_BINDING implicit none type(C_PTR) C_NULL_PTR1 C_NULL_PTR1 = transfer(0_C_INTPTR_T, C_NULL_PTR1) ! write(*,'(a)') trim(merge('.TRUE. ','.FALSE.', & ! C_ASSOCIATED(C_NULL_PTR1))) end program bug2_transfer -- Summary: segfault for TRANSFER integer to TYPE(C_PTR) Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org OtherBugsDependingO 32630 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34199