https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122992

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #29 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Xi Ruoyao from comment #25)
> I made up something to detect such an subtly invalid use of
> EXECUTE_IF_SET_IN_HARD_REG_SET:
> 
> diff --git a/gcc/hard-reg-set.h b/gcc/hard-reg-set.h
> index df56a3acedb..d5af9bbc281 100644
> --- a/gcc/hard-reg-set.h
> +++ b/gcc/hard-reg-set.h
> @@ -401,10 +401,18 @@ hard_reg_set_iter_next (hard_reg_set_iterator *iter,
> unsigned *)
>    iter->bits &= ~ HARD_CONST (1);
>  }
>  
> +template <typename T>
> +inline void
> +build_error_for_rvalue (T &&)
> +{
> +  static_assert(!std::is_rvalue_reference<T&&>::value);

space before (! and , "" before ); is needed, we need C++14 compatibility.

Reply via email to