Fix pr87156 ICE building libstdc++ for mips64

Message ID CAKjxQH=ayMc_bsTa+YcKmuKbrH8QGZ2J6_n9FTXebQhsHeHGfA@mail.gmail.com
State New
Headers show
Series
  • Fix pr87156 ICE building libstdc++ for mips64
Related show

Commit Message

Paul Hua Oct. 11, 2018, 10:12 a.m.
Hi:

The bug pr87156 make MIPS target bootstrap fail a month ago. The
attached patch that posted under bugzilla by Jan Hubicka fixed the
bug.
Bootstrapped and reg-tested on mips64el-linux-gnu and x86_64-pc-linux-gnu.
Considering that Jan not very active, Is it OK for commits the patch
under Jan Hubicka behalf ?

Thanks

Paul Hua



---------------------------------------------------------------------
2018-10-11  Jan Hubicka  <hubicka@ucw.cz>

        PR target/87156
        * cgraphclones.c (cgraph_node::create_version_clone_with_body):
        Set new_decl virtual flag to zero.

Comments

Jeff Law Oct. 12, 2018, 2:38 a.m. | #1
On 10/11/18 4:12 AM, Paul Hua wrote:
> Hi:
> 
> The bug pr87156 make MIPS target bootstrap fail a month ago. The
> attached patch that posted under bugzilla by Jan Hubicka fixed the
> bug.
> Bootstrapped and reg-tested on mips64el-linux-gnu and x86_64-pc-linux-gnu.
> Considering that Jan not very active, Is it OK for commits the patch
> under Jan Hubicka behalf ?
I asked Jan about that patch in IRC just a couple days ago but didn't
get a response.  I've actually had it in my tester for nearly two weeks.

According to a private message between Jan and myself, the other places
where we clone functions already clear DECL_VIRTUAL_P, implying this
instance was merely missing that tidbit.

Given Jan probably knows this code better than anyone, I'm inclined to
take his word on that.  I'll go ahead and commit it momentarily.

jeff

Patch

diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c
index 2af45bd4fec..189cb31a5dc 100644
--- a/gcc/cgraphclones.c
+++ b/gcc/cgraphclones.c
@@ -968,6 +968,8 @@  cgraph_node::create_version_clone_with_body
   SET_DECL_ASSEMBLER_NAME (new_decl, DECL_NAME (new_decl));
   SET_DECL_RTL (new_decl, NULL);

+  DECL_VIRTUAL_P (new_decl) = 0;
+
   /* When the old decl was a con-/destructor make sure the clone isn't.  */
   DECL_STATIC_CONSTRUCTOR (new_decl) = 0;
   DECL_STATIC_DESTRUCTOR (new_decl) = 0;