diff options
author | Jason Merrill <jason@redhat.com> | 2016-02-25 23:53:58 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2016-02-25 23:53:58 -0500 |
commit | 8ba8c3757ba2d1325e75b637ca410609f716d4c0 (patch) | |
tree | ecbeacf79ae336045e5b24c0ee8a24afd2d7f6d2 /gcc/cp/cp-tree.h | |
parent | 1569de0fd6ea025af3e5cb70a0401eaf00d7946d (diff) | |
download | gcc-8ba8c3757ba2d1325e75b637ca410609f716d4c0.zip gcc-8ba8c3757ba2d1325e75b637ca410609f716d4c0.tar.gz gcc-8ba8c3757ba2d1325e75b637ca410609f716d4c0.tar.bz2 |
re PR c++/69889 (ICE: in assign_temp, at function.c:961)
PR c++/69889
* cp-tree.h (AGGR_INIT_FROM_THUNK_P): New.
* tree.c (build_aggr_init_expr): Set it.
* semantics.c (simplify_aggr_init_expr): Check it.
* cp-gimplify.c (cp_genericize_r): Don't walk into
a call/aggr_init from a thunk.
From-SVN: r233733
Diffstat (limited to 'gcc/cp/cp-tree.h')
-rw-r--r-- | gcc/cp/cp-tree.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 88c6367..b1dc23c 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -3409,6 +3409,11 @@ extern void decl_shadowed_for_var_insert (tree, tree); #define AGGR_INIT_ZERO_FIRST(NODE) \ TREE_LANG_FLAG_2 (AGGR_INIT_EXPR_CHECK (NODE)) +/* Nonzero means that the call is the jump from a thunk to the + thunked-to function. */ +#define AGGR_INIT_FROM_THUNK_P(NODE) \ + (AGGR_INIT_EXPR_CHECK (NODE)->base.protected_flag) + /* AGGR_INIT_EXPR accessors. These are equivalent to the CALL_EXPR accessors, except for AGGR_INIT_EXPR_SLOT (which takes the place of CALL_EXPR_STATIC_CHAIN). */ |