diff options
author | Jason Merrill <jason@redhat.com> | 2014-08-22 12:58:25 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2014-08-22 12:58:25 -0400 |
commit | 2d7d7f0fe49688f097720cd921ae65921034cd59 (patch) | |
tree | f630fb30ab136daa63badb4f992fceeb4416e73c /gcc/cp/expr.c | |
parent | 9b517712d78d2d457884dcf23519c7f65c3c28dd (diff) | |
download | gcc-2d7d7f0fe49688f097720cd921ae65921034cd59.zip gcc-2d7d7f0fe49688f097720cd921ae65921034cd59.tar.gz gcc-2d7d7f0fe49688f097720cd921ae65921034cd59.tar.bz2 |
re PR c++/62129 (internal compiler error: in output_constant, at varasm.c:4755)
PR c++/62129
* class.c (outermost_open_class): New.
* cp-tree.h: Declare it.
* decl.c (maybe_register_incomplete_var): Use it.
(complete_vars): Handle any constant variable.
* expr.c (cplus_expand_constant): Handle CONSTRUCTOR.
From-SVN: r214333
Diffstat (limited to 'gcc/cp/expr.c')
-rw-r--r-- | gcc/cp/expr.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/cp/expr.c b/gcc/cp/expr.c index a62e0f9..99f8006 100644 --- a/gcc/cp/expr.c +++ b/gcc/cp/expr.c @@ -74,6 +74,14 @@ cplus_expand_constant (tree cst) } break; + case CONSTRUCTOR: + { + constructor_elt *elt; + unsigned HOST_WIDE_INT idx; + FOR_EACH_VEC_SAFE_ELT (CONSTRUCTOR_ELTS (cst), idx, elt) + elt->value = cplus_expand_constant (elt->value); + } + default: /* There's nothing to do. */ break; |