From: Mark Mitchell Date: Wed, 15 Sep 1999 22:49:33 +0000 (+0000) Subject: decl2.c (build_expr_from_tree): Handle VA_ARG_EXPR. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=371534a917ce5751c5d05e2b7428a86374a73376;p=gcc.git decl2.c (build_expr_from_tree): Handle VA_ARG_EXPR. * decl2.c (build_expr_from_tree): Handle VA_ARG_EXPR. * pt.c (tsubst_copy): Likewise. * tree.c (search_tree): Likewise. (mapcar): Likewise. From-SVN: r29440 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e6cdab77be6..066b247c0b0 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +1999-09-15 Mark Mitchell + + * decl2.c (build_expr_from_tree): Handle VA_ARG_EXPR. + * pt.c (tsubst_copy): Likewise. + * tree.c (search_tree): Likewise. + (mapcar): Likewise. + 1999-09-15 Kaveh R. Ghazi * typeck2.c (ack): Don't declare progname. diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c index 14dc7411137..5ba6c6d4baf 100644 --- a/gcc/cp/decl2.c +++ b/gcc/cp/decl2.c @@ -4026,6 +4026,10 @@ build_expr_from_tree (t) case VAR_DECL: return convert_from_reference (t); + case VA_ARG_EXPR: + return build_va_arg (build_expr_from_tree (TREE_OPERAND (t, 0)), + TREE_TYPE (t)); + default: return t; } diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 704ac44ae4e..c4d829f66ae 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -7206,6 +7206,11 @@ tsubst_copy (t, args, complain, in_decl) return r; } + case VA_ARG_EXPR: + return build_va_arg (tsubst_copy (TREE_OPERAND (t, 0), args, complain, + in_decl), + tsubst (TREE_TYPE (t), args, complain, in_decl)); + default: return t; } diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c index 48425ed1e5d..0805092af35 100644 --- a/gcc/cp/tree.c +++ b/gcc/cp/tree.c @@ -1656,6 +1656,7 @@ search_tree (t, func) case EXIT_EXPR: case LOOP_EXPR: case BIT_FIELD_REF: + case VA_ARG_EXPR: TRY (TREE_OPERAND (t, 0)); break; @@ -1929,6 +1930,7 @@ mapcar (t, func) case CLEANUP_POINT_EXPR: case THROW_EXPR: case STMT_EXPR: + case VA_ARG_EXPR: t = copy_node (t); TREE_TYPE (t) = mapcar (TREE_TYPE (t), func); TREE_OPERAND (t, 0) = mapcar (TREE_OPERAND (t, 0), func);