public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/43611]  New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
@ 2010-03-31 23:31 zsojka at seznam dot cz
  2010-04-01  6:41 ` [Bug tree-optimization/43611] " zsojka at seznam dot cz
                   ` (16 more replies)
  0 siblings, 17 replies; 18+ messages in thread
From: zsojka at seznam dot cz @ 2010-03-31 23:31 UTC (permalink / raw)
  To: gcc-bugs

Command line:
gcc -O3 -fkeep-inline-functions testcase.C
or
gcc -O2 -fipa-cp-clone -fkeep-inline-functions testcase.C
or
gcc -O1 -fipa-cp -fipa-cp-clone -fkeep-inline-functions testcase.C

----- testcase.C -----
#include <sstream>
std::stringstream ss;
----------------------
I am reducing the preprocessed testcase.

Tested versions:
r157877 - crash
r153685 - OK
4.4 r157895 - OK

Valgrind output:
$ valgrind -q --trace-children=yes /mnt/svn/gcc-trunk/binary-157877-lto/bin/gcc
-O3 -fkeep-inline-functions testcase.C
==25065== Invalid read of size 1
==25065==    at 0xB03750: optimize_inline_calls (tree-inline.c:3635)
==25065==    by 0xAD75F6: inline_transform (ipa-inline.c:2011)
==25065==    by 0x856862: execute_all_ipa_transforms (passes.c:1468)
==25065==    by 0x94D0EC: tree_rest_of_compilation (tree-optimize.c:406)
==25065==    by 0xAD1540: cgraph_expand_function (cgraphunit.c:1548)
==25065==    by 0xAD3D44: cgraph_optimize (cgraphunit.c:1627)
==25065==    by 0xAD4474: cgraph_finalize_compilation_unit (cgraphunit.c:1096)
==25065==    by 0x54FA5A: cp_write_global_declarations (decl2.c:3833)
==25065==    by 0x8FBC44: toplev_main (toplev.c:1065)
==25065==    by 0x657DA3C: (below main) (in /lib64/libc-2.10.1.so)
==25065==  Address 0x8b is not stack'd, malloc'd or (recently) free'd
==25065==
In file included from testcase.C:1:0:
/mnt/svn/gcc-trunk/binary-157877-lto/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/sstream:
In function '(static initializers for
/mnt/svn/gcc-trunk/binary-157877-lto/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/sstream)':
/mnt/svn/gcc-trunk/binary-157877-lto/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/sstream:511:44:
internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.


-- 
           Summary: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -
                    fkeep-inline-functions
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: zsojka at seznam dot cz
  GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: x86_64-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
@ 2010-04-01  6:41 ` zsojka at seznam dot cz
  2010-04-01 13:29 ` zsojka at seznam dot cz
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: zsojka at seznam dot cz @ 2010-04-01  6:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from zsojka at seznam dot cz  2010-04-01 06:41 -------
Created an attachment (id=20270)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20270&action=view)
auto-reduced testcase


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
  2010-04-01  6:41 ` [Bug tree-optimization/43611] " zsojka at seznam dot cz
@ 2010-04-01 13:29 ` zsojka at seznam dot cz
  2010-04-01 13:39 ` rguenth at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: zsojka at seznam dot cz @ 2010-04-01 13:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from zsojka at seznam dot cz  2010-04-01 13:29 -------
Created an attachment (id=20274)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20274&action=view)
reduced testcase

Command line:
gcc -O3 -fkeep-inline-functions pr43611.C
or
gcc -O2 -fipa-cp-clone -fkeep-inline-functions pr43611.C
or
gcc -O1 -fipa-cp -fipa-cp-clone -fkeep-inline-functions pr43611.C


-- 

zsojka at seznam dot cz changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #20270|0                           |1
        is obsolete|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
  2010-04-01  6:41 ` [Bug tree-optimization/43611] " zsojka at seznam dot cz
  2010-04-01 13:29 ` zsojka at seznam dot cz
@ 2010-04-01 13:39 ` rguenth at gcc dot gnu dot org
  2010-04-01 15:56 ` jason at redhat dot com
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-04-01 13:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from rguenth at gcc dot gnu dot org  2010-04-01 13:39 -------
The issue seems to be the C++ frontend marking inline functions needed
at cp/semantics.c:3452 while the middle-end should already take care
of that in cgraph_decide_is_function_needed.

Somehow that confuses us and we end up performing inlining on a body
that has been reclaimed.

Honza?

The following "fixes" it, bug arguably the bug must then be latent
with dllexport.

Index: cp/semantics.c
===================================================================
--- cp/semantics.c      (revision 157906)
+++ cp/semantics.c      (working copy)
@@ -3449,8 +3449,7 @@ expand_or_defer_fn_1 (tree fn)
         this function as needed so that finish_file will make sure to
         output it later.  Similarly, all dllexport'd functions must
         be emitted; there may be callers in other DLLs.  */
-      if ((flag_keep_inline_functions && DECL_DECLARED_INLINE_P (fn))
-         || lookup_attribute ("dllexport", DECL_ATTRIBUTES (fn)))
+      if (lookup_attribute ("dllexport", DECL_ATTRIBUTES (fn)))
        mark_needed (fn);
     }



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu dot
                   |                            |org, hubicka at gcc dot gnu
                   |                            |dot org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2010-04-01 13:39:09
               date|                            |
   Target Milestone|---                         |4.5.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (2 preceding siblings ...)
  2010-04-01 13:39 ` rguenth at gcc dot gnu dot org
@ 2010-04-01 15:56 ` jason at redhat dot com
  2010-04-02 17:43 ` rguenth at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jason at redhat dot com @ 2010-04-01 15:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from jason at redhat dot com  2010-04-01 15:55 -------
Subject: Re:  [4.5 Regression] ICE: SIGSEGV with
 -fipa-cp-clone -fkeep-inline-functions

On 04/01/2010 09:39 AM, rguenth at gcc dot gnu dot org wrote:
> The issue seems to be the C++ frontend marking inline functions needed
> at cp/semantics.c:3452 while the middle-end should already take care
> of that in cgraph_decide_is_function_needed.

Another example of why I've been thinking about reworking all the C++ 
front end linkage code to play better with cgraph...

> The following "fixes" it, but arguably the bug must then be latent
> with dllexport.

The patch looks OK since cgraph_decide_is_function_needed handles 
flag_keep_inline_functions.

I'm not sure why doing this here would be a problem, however; 
mark_needed ends up calling cgraph_mark_needed_node, which really ought 
to be a reasonable way to indicate that a function is needed...

Jason


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (3 preceding siblings ...)
  2010-04-01 15:56 ` jason at redhat dot com
@ 2010-04-02 17:43 ` rguenth at gcc dot gnu dot org
  2010-04-03 17:11 ` rguenth at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-04-02 17:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from rguenth at gcc dot gnu dot org  2010-04-02 17:43 -------
The patch probably only papers over the problem.  Honza, can you have a look
here?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (4 preceding siblings ...)
  2010-04-02 17:43 ` rguenth at gcc dot gnu dot org
@ 2010-04-03 17:11 ` rguenth at gcc dot gnu dot org
  2010-04-03 18:41 ` rguenth at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-04-03 17:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from rguenth at gcc dot gnu dot org  2010-04-03 17:11 -------
Looking at the testcase the issue is obvious.  We have marked the
instantiations as extern, and indeed the cgraph code dealing with
-fkeep-inline-functions honors this and does not preserve extern
inline bodies while the C++ FE does not consider this case.

Thus the following patch also solves this.

Index: cp/semantics.c
===================================================================
--- cp/semantics.c      (revision 157953)
+++ cp/semantics.c      (working copy)
@@ -3449,7 +3449,9 @@ expand_or_defer_fn_1 (tree fn)
         this function as needed so that finish_file will make sure to
         output it later.  Similarly, all dllexport'd functions must
         be emitted; there may be callers in other DLLs.  */
-      if ((flag_keep_inline_functions && DECL_DECLARED_INLINE_P (fn))
+      if ((flag_keep_inline_functions
+          && DECL_DECLARED_INLINE_P (fn)
+          && !DECL_EXTERNAL (fn))
          || lookup_attribute ("dllexport", DECL_ATTRIBUTES (fn)))
        mark_needed (fn);
     }

I am going to bootstrap & test this more minimal variant.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2010-04-01 13:39:09         |2010-04-03 17:11:08
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (5 preceding siblings ...)
  2010-04-03 17:11 ` rguenth at gcc dot gnu dot org
@ 2010-04-03 18:41 ` rguenth at gcc dot gnu dot org
  2010-04-03 20:12 ` rguenth at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-04-03 18:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from rguenth at gcc dot gnu dot org  2010-04-03 18:40 -------
But g++.dg/opt/inline8.C then fails.  Why's foo DECL_EXTERNAL?

 <function_decl 0xb77be700 foo
    type <function_type 0xb77428a0
        type <void_type 0xb7733840 void VOID
            align 8 symtab 0 alias set -1 canonical type 0xb7733840
            pointer_to_this <pointer_type 0xb77338a0>>
        QI
        size <integer_cst 0xb771f150 constant 8>
        unit size <integer_cst 0xb771f168 constant 1>
        align 8 symtab 0 alias set -1 canonical type 0xb77428a0
        arg-types <tree_list 0xb771f738 value <void_type 0xb7733840 void>>>
    nothrow public static external weak autoinline decl_5 QI defer-output

huh.

C++ FE lets-set-all-flags fun.

The patch from comment #3 fails the testcase the same way.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|rguenth at gcc dot gnu dot  |unassigned at gcc dot gnu
                   |org                         |dot org
             Status|ASSIGNED                    |NEW


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (6 preceding siblings ...)
  2010-04-03 18:41 ` rguenth at gcc dot gnu dot org
@ 2010-04-03 20:12 ` rguenth at gcc dot gnu dot org
  2010-04-03 20:52 ` hubicka at ucw dot cz
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-04-03 20:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from rguenth at gcc dot gnu dot org  2010-04-03 20:12 -------
Both work with

Index: gcc/cp/semantics.c
===================================================================
--- gcc/cp/semantics.c  (revision 157953)
+++ gcc/cp/semantics.c  (working copy)
@@ -3449,7 +3449,9 @@ expand_or_defer_fn_1 (tree fn)
         this function as needed so that finish_file will make sure to
         output it later.  Similarly, all dllexport'd functions must
         be emitted; there may be callers in other DLLs.  */
-      if ((flag_keep_inline_functions && DECL_DECLARED_INLINE_P (fn))
+      if ((flag_keep_inline_functions
+          && DECL_DECLARED_INLINE_P (fn)
+          && !DECL_REALLY_EXTERN (fn))
          || lookup_attribute ("dllexport", DECL_ATTRIBUTES (fn)))
        mark_needed (fn);
     }


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2010-04-03 17:11:08         |2010-04-03 20:12:00
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (7 preceding siblings ...)
  2010-04-03 20:12 ` rguenth at gcc dot gnu dot org
@ 2010-04-03 20:52 ` hubicka at ucw dot cz
  2010-04-03 21:02 ` jason at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: hubicka at ucw dot cz @ 2010-04-03 20:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from hubicka at ucw dot cz  2010-04-03 20:52 -------
Subject: Re:  [4.5 Regression] ICE: SIGSEGV
        with -fipa-cp-clone -fkeep-inline-functions

> The patch probably only papers over the problem.  Honza, can you have a look
> here?
Hi,
I am away for Easter till Monday, but will check this (and other PRs) at Monday
evening/Tuesday....
The last incarnation of the patch seems fine to me.

Honza


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (8 preceding siblings ...)
  2010-04-03 20:52 ` hubicka at ucw dot cz
@ 2010-04-03 21:02 ` jason at gcc dot gnu dot org
  2010-04-03 21:10 ` rguenther at suse dot de
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jason at gcc dot gnu dot org @ 2010-04-03 21:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from jason at gcc dot gnu dot org  2010-04-03 21:02 -------
If we're going to mess with that code at all, I'd prefer your initial patch.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (9 preceding siblings ...)
  2010-04-03 21:02 ` jason at gcc dot gnu dot org
@ 2010-04-03 21:10 ` rguenther at suse dot de
  2010-04-03 21:12 ` jason at redhat dot com
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenther at suse dot de @ 2010-04-03 21:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from rguenther at suse dot de  2010-04-03 21:10 -------
Subject: Re:  [4.5 Regression] ICE: SIGSEGV with
 -fipa-cp-clone -fkeep-inline-functions

On Sat, 3 Apr 2010, jason at gcc dot gnu dot org wrote:

> ------- Comment #10 from jason at gcc dot gnu dot org  2010-04-03 21:02 -------
> If we're going to mess with that code at all, I'd prefer your initial patch.

But the initial patch also regresses g++.dg/opt/inline8.C, as for
the inline function therein DECL_EXTERNAL is set and thus the
middle-end disregards it for its -fkeep-inline-functions processing.

I suppose it is really the frontends business on deciding whether
the language requires to emit inlines or not.  And I suppose that
the C++ frontend by setting DECL_EXTERNAL on inlines instructs
the middle-end not to emit non-inlined copies [if the are not
needed]?  Thus, maybe the frontend should clear DECL_EXTERNAL
for -fkeep-inline-functions instead - together with DECL_PUBLIC
and TREE_STATIC it should force the functions to be output.

But as you say the whole linkage code seems to need some TLC,
so I'm trying to figure out a minimal fix for the ICE for 4.5.

The patch from comment #8 is still in testing.

Thanks,
Richard.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (10 preceding siblings ...)
  2010-04-03 21:10 ` rguenther at suse dot de
@ 2010-04-03 21:12 ` jason at redhat dot com
  2010-04-06 11:28 ` rguenth at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jason at redhat dot com @ 2010-04-03 21:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from jason at redhat dot com  2010-04-03 21:12 -------
Subject: Re:  [4.5 Regression] ICE: SIGSEGV with
 -fipa-cp-clone -fkeep-inline-functions

On 04/03/2010 05:10 PM, rguenther at suse dot de wrote:
> But the initial patch also regresses g++.dg/opt/inline8.C, as for
> the inline function therein DECL_EXTERNAL is set and thus the
> middle-end disregards it for its -fkeep-inline-functions processing.

Ah, right.  We can't leave it up to cgraph as long as the front end is 
still playing its DECL_NOT_REALLY_EXTERN games.  So yeah, I guess your 
third patch is the best bet for now.

Jason


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (11 preceding siblings ...)
  2010-04-03 21:12 ` jason at redhat dot com
@ 2010-04-06 11:28 ` rguenth at gcc dot gnu dot org
  2010-04-09 12:58 ` [Bug tree-optimization/43611] [4.5/4.6 " rguenth at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-04-06 11:28 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from rguenth at gcc dot gnu dot org  2010-04-06 11:21 -------
GCC 4.5.0 is being released.  Deferring to 4.5.1.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.5.0                       |4.5.1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5/4.6 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (12 preceding siblings ...)
  2010-04-06 11:28 ` rguenth at gcc dot gnu dot org
@ 2010-04-09 12:58 ` rguenth at gcc dot gnu dot org
  2010-04-12  9:53 ` rguenth at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-04-09 12:58 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5/4.6 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (13 preceding siblings ...)
  2010-04-09 12:58 ` [Bug tree-optimization/43611] [4.5/4.6 " rguenth at gcc dot gnu dot org
@ 2010-04-12  9:53 ` rguenth at gcc dot gnu dot org
  2010-04-15 13:45 ` [Bug tree-optimization/43611] [4.5 " rguenth at gcc dot gnu dot org
  2010-04-15 13:45 ` rguenth at gcc dot gnu dot org
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-04-12  9:53 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from rguenth at gcc dot gnu dot org  2010-04-12 09:53 -------
Subject: Bug 43611

Author: rguenth
Date: Mon Apr 12 09:52:50 2010
New Revision: 158218

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=158218
Log:
2010-04-12  Richard Guenther  <rguenther@suse.de>

        PR c++/43611
        * semantics.c (expand_or_defer_fn_1): Do not keep extern
        template inline functions.

        * g++.dg/torture/pr43611.C: New testcase.

Added:
    trunk/gcc/testsuite/g++.dg/torture/pr43611.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/semantics.c
    trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (14 preceding siblings ...)
  2010-04-12  9:53 ` rguenth at gcc dot gnu dot org
@ 2010-04-15 13:45 ` rguenth at gcc dot gnu dot org
  2010-04-15 13:45 ` rguenth at gcc dot gnu dot org
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-04-15 13:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from rguenth at gcc dot gnu dot org  2010-04-15 13:44 -------
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
      Known to fail|                            |4.5.0
      Known to work|4.6.0                       |4.5.1 4.6.0
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Bug tree-optimization/43611] [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions
  2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
                   ` (15 preceding siblings ...)
  2010-04-15 13:45 ` [Bug tree-optimization/43611] [4.5 " rguenth at gcc dot gnu dot org
@ 2010-04-15 13:45 ` rguenth at gcc dot gnu dot org
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2010-04-15 13:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from rguenth at gcc dot gnu dot org  2010-04-15 13:44 -------
Subject: Bug 43611

Author: rguenth
Date: Thu Apr 15 13:44:31 2010
New Revision: 158376

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=158376
Log:
2010-04-15  Richard Guenther  <rguenther@suse.de>

        PR c++/43611
        * semantics.c (expand_or_defer_fn_1): Do not keep extern
        template inline functions.

        * g++.dg/torture/pr43611.C: New testcase.

Added:
    branches/gcc-4_5-branch/gcc/testsuite/g++.dg/torture/pr43611.C
Modified:
    branches/gcc-4_5-branch/gcc/cp/ChangeLog
    branches/gcc-4_5-branch/gcc/cp/semantics.c
    branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43611


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2010-04-15 13:45 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-31 23:31 [Bug tree-optimization/43611] New: [4.5 Regression] ICE: SIGSEGV with -fipa-cp-clone -fkeep-inline-functions zsojka at seznam dot cz
2010-04-01  6:41 ` [Bug tree-optimization/43611] " zsojka at seznam dot cz
2010-04-01 13:29 ` zsojka at seznam dot cz
2010-04-01 13:39 ` rguenth at gcc dot gnu dot org
2010-04-01 15:56 ` jason at redhat dot com
2010-04-02 17:43 ` rguenth at gcc dot gnu dot org
2010-04-03 17:11 ` rguenth at gcc dot gnu dot org
2010-04-03 18:41 ` rguenth at gcc dot gnu dot org
2010-04-03 20:12 ` rguenth at gcc dot gnu dot org
2010-04-03 20:52 ` hubicka at ucw dot cz
2010-04-03 21:02 ` jason at gcc dot gnu dot org
2010-04-03 21:10 ` rguenther at suse dot de
2010-04-03 21:12 ` jason at redhat dot com
2010-04-06 11:28 ` rguenth at gcc dot gnu dot org
2010-04-09 12:58 ` [Bug tree-optimization/43611] [4.5/4.6 " rguenth at gcc dot gnu dot org
2010-04-12  9:53 ` rguenth at gcc dot gnu dot org
2010-04-15 13:45 ` [Bug tree-optimization/43611] [4.5 " rguenth at gcc dot gnu dot org
2010-04-15 13:45 ` rguenth at gcc dot gnu dot 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).