diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cgraphclones.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/opt/pr60002.C | 12 |
4 files changed, 22 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 17a6262..98f38c2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2014-02-04 Jakub Jelinek <jakub@redhat.com> + 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 a87f77c..ca69033 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 4c49fc3..b85f335 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2014-02-04 Jakub Jelinek <jakub@redhat.com> + 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 0000000..753f579d --- /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 (); +} |