diff options
Diffstat (limited to 'gcc/cp/parser.c')
| -rw-r--r-- | gcc/cp/parser.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 60787b0..d3343aa 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -13267,6 +13267,13 @@ cp_parser_direct_declarator (cp_parser* parser, &non_constant_p); if (!non_constant_p) bounds = fold_non_dependent_expr (bounds); + else if (processing_template_decl) + { + /* Remember this wasn't a constant-expression. */ + bounds = build_nop (TREE_TYPE (bounds), bounds); + TREE_SIDE_EFFECTS (bounds) = 1; + } + /* Normally, the array bound must be an integral constant expression. However, as an extension, we allow VLAs in function scopes. */ |
