From: Jakub Jelinek Date: Tue, 4 Feb 2014 13:38:13 +0000 (+0100) Subject: re PR tree-optimization/60002 (ICE: SIGSEGV in skip_artificial_parms_for() with ... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=029ce7a26d8b23eee3096ff9f8424480c7dae6dd;p=gcc.git re PR tree-optimization/60002 (ICE: SIGSEGV in skip_artificial_parms_for() with -O2 -fcompare-debug -fdeclone-ctor-dtor -fipa-cp-clone) PR tree-optimization/60002 * cgraphclones.c (build_function_decl_skip_args): Clear DECL_LANG_SPECIFIC. * g++.dg/opt/pr60002.C: New test. From-SVN: r207465 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 17a62621325..98f38c2fb95 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2014-02-04 Jakub Jelinek + PR tree-optimization/60002 + * cgraphclones.c (build_function_decl_skip_args): Clear + DECL_LANG_SPECIFIC. + PR tree-optimization/60023 * tree-if-conv.c (predicate_mem_writes): Pass true instead of false to gsi_replace. diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c index a87f77c628a..ca69033ddde 100644 --- a/gcc/cgraphclones.c +++ b/gcc/cgraphclones.c @@ -390,6 +390,9 @@ build_function_decl_skip_args (tree orig_decl, bitmap args_to_skip, DECL_BUILT_IN_CLASS (new_decl) = NOT_BUILT_IN; DECL_FUNCTION_CODE (new_decl) = (enum built_in_function) 0; } + /* The FE might have information and assumptions about the other + arguments. */ + DECL_LANG_SPECIFIC (new_decl) = NULL; return new_decl; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 4c49fc3c2a7..b85f335dbce 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2014-02-04 Jakub Jelinek + PR tree-optimization/60002 + * g++.dg/opt/pr60002.C: New test. + PR tree-optimization/60023 * g++.dg/vect/pr60023.cc: New test. diff --git a/gcc/testsuite/g++.dg/opt/pr60002.C b/gcc/testsuite/g++.dg/opt/pr60002.C new file mode 100644 index 00000000000..753f579dd9a --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/pr60002.C @@ -0,0 +1,12 @@ +// PR tree-optimization/60002 +// { dg-do compile } +// { dg-options "-O2 -fcompare-debug -fdeclone-ctor-dtor -fipa-cp-clone" } + +struct A {}; + +struct B : virtual A { B (); ~B (); }; + +B::~B () +{ + B (); +}