aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/cp-tree.h
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2016-02-25 23:53:58 -0500
committerJason Merrill <jason@gcc.gnu.org>2016-02-25 23:53:58 -0500
commit8ba8c3757ba2d1325e75b637ca410609f716d4c0 (patch)
treeecbeacf79ae336045e5b24c0ee8a24afd2d7f6d2 /gcc/cp/cp-tree.h
parent1569de0fd6ea025af3e5cb70a0401eaf00d7946d (diff)
downloadgcc-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.h5
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). */