Bug 41347 - [4.5 Regression] ICE with -O3 or '-O2 -finline-functions'
Summary: [4.5 Regression] ICE with -O3 or '-O2 -finline-functions'
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: middle-end (show other bugs)
Version: 4.5.0
: P2 major
Target Milestone: 4.5.0
Assignee: Michael Matz
URL:
Keywords: ice-on-valid-code
Depends on:
Blocks:
 
Reported: 2009-09-13 06:51 UTC by Martien Hulsen
Modified: 2009-09-17 11:14 UTC (History)
2 users (show)

See Also:
Host: Linux x86_64
Target: Linux x86_64
Build:
Known to work: 4.3.4 4.4.2
Known to fail: 4.5.0
Last reconfirmed: 2009-09-16 17:03:59


Attachments
source file exposing the bug (4.56 KB, text/plain)
2009-09-13 06:53 UTC, Martien Hulsen
Details
Reduced testcase (221 bytes, text/plain)
2009-09-15 20:42 UTC, kargls
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martien Hulsen 2009-09-13 06:51:58 UTC
with attached source file

gfortran -c -O3 hsl_ma41.f90

gives

hsl_ma41.f90: In function ‘prinfo.1459’:
hsl_ma41.f90:616:0: error: type mismatch in component reference
integer(kind=4)[0:D.1496] * restrict

integer(kind=4)[0:D.2718] *

# VUSE <.MEM_56>
D.2523_12 = CHAIN.85_1(D)->info.0;

hsl_ma41.f90:616:0: error: type mismatch in component reference
real(kind=8)[0:D.1492] * restrict

real(kind=8)[0:D.2722] *

# VUSE <.MEM_75>
D.2535_28 = CHAIN.85_1(D)->rinfo.0;

hsl_ma41.f90:616:0: internal compiler error: verify_stmts failed
Comment 1 Martien Hulsen 2009-09-13 06:53:59 UTC
Created attachment 18576 [details]
source file exposing the bug
Comment 2 kargls 2009-09-13 15:56:26 UTC
Problem also occurs on *-*-freebsd.  This may be related to the
2009-08-18  Michael Matz  <matz@suse.de>
commit.
Comment 3 kargls 2009-09-15 20:42:46 UTC
Created attachment 18589 [details]
Reduced testcase

This is reduced testcase from the original source.
Comment 4 kargls 2009-09-15 21:49:04 UTC
troutmask:sgk[231] gfc4x -c -O2 -finline-functions reduced.f90
reduced.f90: In function '__hsl_ma41_m_MOD_prininfo':
reduced.f90:12:0: error: type mismatch in component reference
integer(kind=4)[0:D.1361] * restrict

integer(kind=4)[0:D.1449] *

# .MEM_25 = VDEF <.MEM_24>
FRAME.11.info.0 = D.1406_8;

reduced.f90:12:0: internal compiler error: verify_stmts failed
Comment 5 Richard Biener 2009-09-16 12:55:15 UTC
it's the inliner that exposes this.  I didn't yet investigate further.
Comment 6 Michael Matz 2009-09-16 17:03:59 UTC
Mine.  The inliner remaps types (when they are variably modified)
without caring for qualifiers or attributes, resulting in these mismatches.
I have a patch.
Comment 7 Michael Matz 2009-09-17 11:12:12 UTC
Subject: Bug 41347

Author: matz
Date: Thu Sep 17 11:11:58 2009
New Revision: 151799

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=151799
Log:
	PR middle-end/41347
	* tree.c (build_type_attribute_qual_variant): Export.
	* tree.h (build_type_attribute_qual_variant): Declare.
	* tree-inline.c (remap_type_1): Use it to build variants with
	the original qualifiers and attributes.

testsuite/
	* gfortran.dg/pr41347.f90: New test.

Added:
    trunk/gcc/testsuite/gfortran.dg/pr41347.f90
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-inline.c
    trunk/gcc/tree.c
    trunk/gcc/tree.h

Comment 8 Michael Matz 2009-09-17 11:14:30 UTC
Fixed.
Comment 9 hjl@gcc.gnu.org 2009-09-28 20:39:46 UTC
Subject: Bug 41347

Author: hjl
Date: Mon Sep 28 20:38:53 2009
New Revision: 152250

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=152250
Log:
2009-09-28  H.J. Lu  <hongjiu.lu@intel.com>

	Backport from mainline:
	2009-09-26  Andreas Schwab  <schwab@linux-m68k.org>

	PR c/41476
	* gcc.dg/cond-constqual-1.c: New test.

	2009-09-26  Michael Matz  <matz@suse.de>

	PR lto/40758
	PR middle-end/41470
	* gcc.dg/pr41470.c: New test.

	2009-09-23  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41248
	* gcc.dg/pr41248.c: New.

	2009-09-22  Alexandre Oliva  <aoliva@redhat.com>

	PR debug/41295
	* gcc.dg/pr41295.c: New.

	2009-09-20  Andrew Pinski  <pinskia@gcc.gnu.org>

	PR middle-end/40642
	* g++.dg/torture/pr40642.C: New testcase.

	2009-09-17  Michael Matz  <matz@suse.de>

	PR middle-end/41347
	* gfortran.dg/pr41347.f90: New test.

	2009-09-16  Michael Matz  <matz@suse.de>

	PR fortran/41212
	* gfortran.dg/pr41212.f90: New test.

	2009-09-11  Michael Matz  <matz@suse.de>

	PR middle-end/41275
	* g++.dg/tree-ssa/pr41275.C: New test.

	2009-09-11  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/41242
	* gfortran.dg/proc_ptr_comp_21.f90: New.

Added:
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/torture/pr40642.C
      - copied unchanged from r152249, trunk/gcc/testsuite/g++.dg/torture/pr40642.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/tree-ssa/pr41275.C
      - copied unchanged from r152249, trunk/gcc/testsuite/g++.dg/tree-ssa/pr41275.C
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/cond-constqual-1.c
      - copied unchanged from r152248, trunk/gcc/testsuite/gcc.dg/cond-constqual-1.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41248.c
      - copied unchanged from r152248, trunk/gcc/testsuite/gcc.dg/pr41248.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41295.c
      - copied unchanged from r152249, trunk/gcc/testsuite/gcc.dg/pr41295.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41470.c
      - copied unchanged from r152248, trunk/gcc/testsuite/gcc.dg/pr41470.c
    branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/pr41212.f90
      - copied unchanged from r152249, trunk/gcc/testsuite/gfortran.dg/pr41212.f90
    branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/pr41347.f90
      - copied unchanged from r152249, trunk/gcc/testsuite/gfortran.dg/pr41347.f90
    branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/proc_ptr_comp_21.f90
      - copied unchanged from r152249, trunk/gcc/testsuite/gfortran.dg/proc_ptr_comp_21.f90
Modified:
    branches/gcc-4_4-branch/gcc/testsuite/ChangeLog