[Bug c++/81942] ICE on empty constexpr constructor with C++14

thopre01 at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Sep 1 09:45:00 GMT 2017


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

--- Comment #7 from Thomas Preud'homme <thopre01 at gcc dot gnu.org> ---
Hi Paolo,

Thanks for working on this.

(In reply to Paolo Carlini from comment #6)
> It would be nice if somebody with a fully functional ARM toolchain could
> check whether something like the below at least avoids the ICE without
> causing any regressions. I hope it does.
> 
> Index: constexpr.c
> ===================================================================
> --- constexpr.c	(revision 251553)
> +++ constexpr.c	(working copy)
> @@ -3679,7 +3679,7 @@ breaks (tree *jump_target)
>  {
>    return *jump_target
>      && ((TREE_CODE (*jump_target) == LABEL_DECL
> -	 && LABEL_DECL_BREAK (*jump_target))
> +	 && (LABEL_DECL_BREAK (*jump_target) || DECL_ARTIFICIAL (*jump_target)))
>  	|| TREE_CODE (*jump_target) == EXIT_EXPR);
>  }

The patch works for me on the testcase I provided, that is compilation process
returns a success error code instead of ICEing.

Best regards.


More information about the Gcc-bugs mailing list