diff mbox series

[pushed] c++/modules: make bits_in/out move-constructible

Message ID 20240413201211.234747-1-ppalka@redhat.com
State New
Headers show
Series [pushed] c++/modules: make bits_in/out move-constructible | expand

Commit Message

Patrick Palka April 13, 2024, 8:12 p.m. UTC
Pushed as obvious after verifying C++11 bootstrap is restored.

-- >8 --

gcc/cp/ChangeLog:

	* module.cc (struct bytes_in::bits_in): Define defaulted
	move ctor.
	(struct bytes_out::bits_out): Likewise.
---
 gcc/cp/module.cc | 2 ++
 1 file changed, 2 insertions(+)

Comments

Gerald Pfeifer April 14, 2024, 2:59 p.m. UTC | #1
On Sat, 13 Apr 2024, Patrick Palka wrote:
> Pushed as obvious after verifying C++11 bootstrap is restored.

Thank you, Patrick! x86_64-unknown-freebsd13.2 is back to bootstrap again 
as well (with clang version 16.0.6).

Gerald
Christophe Lyon April 22, 2024, 12:57 a.m. UTC | #2
Hi Patrick,

On Sat, 13 Apr 2024 at 22:12, Patrick Palka <ppalka@redhat.com> wrote:
>
> Pushed as obvious after verifying C++11 bootstrap is restored.

I guess this also fixes the bootstrap_ubsan breakage on aarch64
reported by Linaro CI?
See https://linaro.atlassian.net/browse/GNU-1199
(I think you also received a notification about this a few days ago?)

Thanks,

Christophe

>
> -- >8 --
>
> gcc/cp/ChangeLog:
>
>         * module.cc (struct bytes_in::bits_in): Define defaulted
>         move ctor.
>         (struct bytes_out::bits_out): Likewise.
> ---
>  gcc/cp/module.cc | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
> index bbed82652d4..c6f71e11515 100644
> --- a/gcc/cp/module.cc
> +++ b/gcc/cp/module.cc
> @@ -706,6 +706,7 @@ struct bytes_in::bits_in {
>      bflush ();
>    }
>
> +  bits_in(bits_in&&) = default;
>    bits_in(const bits_in&) = delete;
>    bits_in& operator=(const bits_in&) = delete;
>
> @@ -752,6 +753,7 @@ struct bytes_out::bits_out {
>      bflush ();
>    }
>
> +  bits_out(bits_out&&) = default;
>    bits_out(const bits_out&) = delete;
>    bits_out& operator=(const bits_out&) = delete;
>
> --
> 2.44.0.591.g8f7582d995
>
Patrick Palka April 22, 2024, 9:29 p.m. UTC | #3
On Mon, 22 Apr 2024, Christophe Lyon wrote:

> Hi Patrick,
> 
> On Sat, 13 Apr 2024 at 22:12, Patrick Palka <ppalka@redhat.com> wrote:
> >
> > Pushed as obvious after verifying C++11 bootstrap is restored.
> 
> I guess this also fixes the bootstrap_ubsan breakage on aarch64
> reported by Linaro CI?
> See https://linaro.atlassian.net/browse/GNU-1199
> (I think you also received a notification about this a few days ago?)

Yes, sorry for the breakage.  r14-9955-g436ab7e8e8b broke bootstrap
due to relying on C++17 copy elision semantics, and this followup
patch trivially fixed that.

> 
> Thanks,
> 
> Christophe
> 
> >
> > -- >8 --
> >
> > gcc/cp/ChangeLog:
> >
> >         * module.cc (struct bytes_in::bits_in): Define defaulted
> >         move ctor.
> >         (struct bytes_out::bits_out): Likewise.
> > ---
> >  gcc/cp/module.cc | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
> > index bbed82652d4..c6f71e11515 100644
> > --- a/gcc/cp/module.cc
> > +++ b/gcc/cp/module.cc
> > @@ -706,6 +706,7 @@ struct bytes_in::bits_in {
> >      bflush ();
> >    }
> >
> > +  bits_in(bits_in&&) = default;
> >    bits_in(const bits_in&) = delete;
> >    bits_in& operator=(const bits_in&) = delete;
> >
> > @@ -752,6 +753,7 @@ struct bytes_out::bits_out {
> >      bflush ();
> >    }
> >
> > +  bits_out(bits_out&&) = default;
> >    bits_out(const bits_out&) = delete;
> >    bits_out& operator=(const bits_out&) = delete;
> >
> > --
> > 2.44.0.591.g8f7582d995
> >
> 
>
diff mbox series

Patch

diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index bbed82652d4..c6f71e11515 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -706,6 +706,7 @@  struct bytes_in::bits_in {
     bflush ();
   }
 
+  bits_in(bits_in&&) = default;
   bits_in(const bits_in&) = delete;
   bits_in& operator=(const bits_in&) = delete;
 
@@ -752,6 +753,7 @@  struct bytes_out::bits_out {
     bflush ();
   }
 
+  bits_out(bits_out&&) = default;
   bits_out(const bits_out&) = delete;
   bits_out& operator=(const bits_out&) = delete;