public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "rguenth at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/64921] [4.9/5/6 Regression] FAIL: gfortran.dg/class_allocate_18.f90 Date: Mon, 27 Jul 2015 07:57:00 -0000 [thread overview] Message-ID: <bug-64921-4-ZE7NYIpJXV@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-64921-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64921 --- Comment #19 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Uroš Bizjak from comment #18) > (In reply to Uroš Bizjak from comment #17) > > (In reply to Mat Cross from comment #14) > > > For the record, perhaps it is of interest for me to note that we are running > > > into this (cf. PR64230 comment 9) on code like > > > > > > Program test > > > Implicit None > > > Type :: t1 > > > Integer, Allocatable :: i > > > End Type > > > Type :: t2 > > > Integer, Allocatable :: i > > > End Type > > > Type, Extends (t1) :: t3 > > > Type (t2) :: j > > > End Type > > > Type, Extends (t3) :: t4 > > > Integer, Allocatable :: k > > > End Type > > > Call s > > > Print *, 'ok' > > > Contains > > > Subroutine s > > > Class (t1), Allocatable :: x > > > Allocate (t4 :: x) > > > End Subroutine > > > End Program > > > > > > Since the crash is in bad compiler-generated finalization code (since 4.9), > > > and given that (if I recall correctly) gfortran is using the Fortran 2008 > > > semantics for entities declared in a main program being implicitly saved, > > > this is why removing the Deallocate (in the comment 12 example) works - the > > > finalizer is never called then. > > > > No wonder this test crashes. Tree-optimizers (-O2) on x86_64 produce: > > [...] > > I was able to trace dumps down to _.fre2 tree dump, where we have: > > <bb 12>: > # idx_104 = PHI <0(11), idx_122(16)> > offset_115 = 0; > ptr2_119 = (struct t3 *) offset_115; > _120 = &ptr2_119->j; This isn't a dereference, it's just an address computation. Iff j is not at offset zero then of course... if (_120 != 0B) goto <bb 19>; else goto <bb 22>; <bb 19>: _121 = ptr2_119->j.i; we'll crash right here. So the question is whether the frontend emits the correct test against zero: offset = offset * byte_stride; D.3466 = (void *) array->data; D.3467 = D.3466; D.3465 = 8; D.3469 = 8; __builtin_memcpy ((void *) &transfer.4, (void *) &D.3467, (unsigned long) MAX_EXPR <MIN_EXPR <D.3469, D.3465>, 0>); ptr2 = (struct t4 *) (transfer.4 + offset); if (ptr2 != 0B) { { integer(kind=4) stat.5; if (ptr2->k == 0B) to me it looks like if we really want to test transfer.4 (array->data) against zero. We do 0x0000000000400b26 <+502>: cmp $0xfffffffffffffff8,%r15 0x0000000000400b2a <+506>: je 0x400b42 <test+530> => 0x0000000000400b2c <+508>: mov 0x8(%r15),%rdi and %r15 is zero, so offset is _not_ zero here (but ends up constant propagated and we "optimize" the compare - offset seems to be 8). > This can't be right, we have a dereference from zero. If the frontend > produced correct code, then tree-optimization passes made a mess here. > > CC Richi. >From gcc-bugs-return-493428-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Mon Jul 27 08:03:54 2015 Return-Path: <gcc-bugs-return-493428-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org> Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 128002 invoked by alias); 27 Jul 2015 08:03:54 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: <gcc-bugs.gcc.gnu.org> List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/> List-Post: <mailto:gcc-bugs@gcc.gnu.org> List-Help: <mailto:gcc-bugs-help@gcc.gnu.org> Sender: gcc-bugs-owner@gcc.gnu.org Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 127956 invoked by uid 48); 27 Jul 2015 08:03:50 -0000 From: "rguenth at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/65974] [5/6 Regression] Bogus deprecated-declarations warnings for inline definitions of deprecated virtual methods Date: Mon, 27 Jul 2015 08:03:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 5.1.1 X-Bugzilla-Keywords: diagnostic X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 5.3 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_status cf_known_to_work keywords cf_reconfirmed_on cc everconfirmed short_desc target_milestone cf_known_to_fail Message-ID: <bug-65974-4-7uibWlaN6g@http.gcc.gnu.org/bugzilla/> In-Reply-To: <bug-65974-4@http.gcc.gnu.org/bugzilla/> References: <bug-65974-4@http.gcc.gnu.org/bugzilla/> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-07/txt/msg02318.txt.bz2 Content-length: 1148 https://gcc.gnu.org/bugzilla/show_bug.cgi?ide974 Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Known to work| |4.9.3 Keywords| |diagnostic Last reconfirmed| |2015-07-27 CC| |rguenth at gcc dot gnu.org Ever confirmed|0 |1 Summary|Bogus |[5/6 Regression] Bogus |deprecated-declarations |deprecated-declarations |warnings for inline |warnings for inline |definitions of deprecated |definitions of deprecated |virtual methods |virtual methods Target Milestone|--- |5.3 Known to fail| |5.1.0, 5.2.0, 6.0 --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed.
next prev parent reply other threads:[~2015-07-27 7:57 UTC|newest] Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-02-03 15:42 [Bug rtl-optimization/64921] New: [5 Regression] FAIL: gfortran.dg/class_allocate_18.f90 with -fPIC hjl.tools at gmail dot com 2015-02-03 16:03 ` [Bug rtl-optimization/64921] " jakub at gcc dot gnu.org 2015-02-03 17:22 ` hjl.tools at gmail dot com 2015-02-03 17:32 ` [Bug rtl-optimization/64921] [4.9/5 Regression] FAIL: gfortran.dg/class_allocate_18.f90 hjl.tools at gmail dot com 2015-02-03 21:30 ` pault at gcc dot gnu.org 2015-02-04 3:00 ` ramana at gcc dot gnu.org 2015-02-04 18:21 ` pault at gcc dot gnu.org 2015-02-04 18:31 ` hjl.tools at gmail dot com 2015-02-04 19:00 ` dominiq at lps dot ens.fr 2015-02-04 19:03 ` dominiq at lps dot ens.fr 2015-02-09 0:07 ` pinskia at gcc dot gnu.org 2015-02-09 10:00 ` rguenth at gcc dot gnu.org 2015-02-09 14:26 ` rguenth at gcc dot gnu.org 2015-02-16 13:40 ` dominiq at lps dot ens.fr 2015-02-16 13:48 ` [Bug fortran/64921] " dominiq at lps dot ens.fr 2015-04-27 12:26 ` [Bug fortran/64921] [4.9/5/6 " mathewc at nag dot co.uk 2015-06-26 20:04 ` jakub at gcc dot gnu.org 2015-06-26 20:34 ` jakub at gcc dot gnu.org 2015-07-07 15:29 ` ktkachov at gcc dot gnu.org 2015-07-25 13:31 ` ubizjak at gmail dot com 2015-07-25 15:13 ` ubizjak at gmail dot com 2015-07-27 7:57 ` rguenth at gcc dot gnu.org [this message] 2015-07-27 18:45 ` mikael at gcc dot gnu.org 2015-07-27 19:44 ` rguenther at suse dot de 2015-07-28 12:07 ` mikael at gcc dot gnu.org 2015-07-28 12:31 ` rguenther at suse dot de 2015-07-28 12:43 ` ubizjak at gmail dot com 2015-08-05 15:42 ` mikael at gcc dot gnu.org 2015-08-05 16:42 ` mikael at gcc dot gnu.org 2015-08-05 17:04 ` mikael at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-64921-4-ZE7NYIpJXV@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).