r265788 - in /trunk/gcc/cp: ChangeLog constexpr...

jason@gcc.gnu.org jason@gcc.gnu.org
Mon Nov 5 07:46:00 GMT 2018


Author: jason
Date: Mon Nov  5 07:46:57 2018
New Revision: 265788

URL: https://gcc.gnu.org/viewcvs?rev=265788&root=gcc&view=rev
Log:
Fix various latent issues revealed by P0732 work.

The initialized_type hunk fixes handling of void AGGR_INIT_EXPRs that call a
non-constructor; an AGGR_INIT_EXPR can have void type if its initialization
semantics are more complicated than just expanding the call.

The cxx_eval_vec_init_1 hunk corrects AGGR_INIT_EXPRs that were
nonsensically built to initialize an object of void type.  And the
build_aggr_init_expr hunk makes sure we don't do that again.

The ocp_convert and cxx_eval_outermost_constant_expr hunks deal with making
sure that a constant CONSTRUCTOR has the right type.

	* cvt.c (ocp_convert): Don't wrap a CONSTRUCTOR in a NOP_EXPR.
	* constexpr.c (initialized_type): Fix AGGR_INIT_EXPR handling.
	(cxx_eval_vec_init_1): Correct type of AGGR_INIT_EXPR.
	(cxx_eval_outermost_constant_expr): Make sure a CONSTRUCTOR has the
	right type.  Don't wrap a CONSTRUCTOR if one was passed in.
	* tree.c (build_aggr_init_expr): Check for void.

Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/constexpr.c
    trunk/gcc/cp/cvt.c
    trunk/gcc/cp/tree.c



More information about the Gcc-cvs mailing list