diff options
author | Nicola Pero <nicola.pero@meta-innovation.com> | 2010-10-07 22:34:50 +0000 |
---|---|---|
committer | Nicola Pero <nicola@gcc.gnu.org> | 2010-10-07 22:34:50 +0000 |
commit | c154b3d8a1df6b4ae78e8388fc0a8bd1dbf48120 (patch) | |
tree | 455473998e5c9ec7c9dd8fd1ad23718ce9ad8d9b /gcc/cp/parser.c | |
parent | 2fb996b6d25fc277bc585e1a635c6e6c84492737 (diff) | |
download | gcc-c154b3d8a1df6b4ae78e8388fc0a8bd1dbf48120.tar.gz |
In gcc/testsuite/: 2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/testsuite/:
2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
* obj-c++.dg/encode-10.mm: New testcase.
In gcc/cp/:
2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
* cp-tree.def: Changed type of AT_ENCODE_EXPR from tcc_unary to
tcc_expression.
* cxx-pretty-print.c (pp_cxx_unary_expression): Added case for
AT_ENCODE_EXPR.
* error.c (dump_expr): Added case for AT_ENCODE_EXPR.
* pt.c (tsubst_copy): Added case for AT_ENCODE_EXPR.
(value_dependent_expression_p): Added case for AT_ENCODE_EXPR.
(type_dependent_expression_p): Added case for AT_ENCODE_EXPR.
* parser.c (cp_parser_objc_encode_expression): Updated comment.
From-SVN: r165138
Diffstat (limited to 'gcc/cp/parser.c')
-rw-r--r-- | gcc/cp/parser.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index f5fa793da4a..f5f4521a2d0 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -21128,6 +21128,12 @@ cp_parser_objc_encode_expression (cp_parser* parser) return error_mark_node; } + /* This happens if we find @encode(T) (where T is a template + typename or something dependent on a template typename) when + parsing a template. In that case, we can't compile it + immediately, but we rather create an AT_ENCODE_EXPR which will + need to be instantiated when the template is used. + */ if (dependent_type_p (type)) { tree value = build_min (AT_ENCODE_EXPR, size_type_node, type); |