aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/semantics.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>1999-09-09 12:07:46 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>1999-09-09 12:07:46 +0000
commit02cac427d515af0b0855cda11124997fc76a13b9 (patch)
tree88b5b117435e72426ca1237680e644cce728803b /gcc/cp/semantics.c
parentfb3f91c9a888e175c2d2e39ed9017b59f4c99876 (diff)
downloadgcc-02cac427d515af0b0855cda11124997fc76a13b9.zip
gcc-02cac427d515af0b0855cda11124997fc76a13b9.tar.gz
gcc-02cac427d515af0b0855cda11124997fc76a13b9.tar.bz2
extend.texi (Volatiles): New node.
gcc/ChangeLog: * extend.texi (Volatiles): New node. gcc/cp/ChangeLog: * cp-tree.h (convert_to_void): Prototype new function. (require_complete_type_in_void): Remove prototype. * cvt.c (convert_to_void): New function. (ocp_convert): Use convert_to_void. * decl.c (cplus_expand_expr_stmt): Likewise, for complete expressions. * typeck.c (require_complete_type_in_void): Remove function. (build_compound_expr): Use convert_to_void. (build_static_cast): Likewise. (build_c_cast): Likewise. * semantics.c (finish_expr_stmt): Do not decay full expressions. * typeck.c (build_x_compound_expr): Add FIXME. From-SVN: r29233
Diffstat (limited to 'gcc/cp/semantics.c')
-rw-r--r--gcc/cp/semantics.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index bd44449..822027e 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -79,9 +79,10 @@ finish_expr_stmt (expr)
emit_line_note (input_filename, lineno);
/* Do default conversion if safe and possibly important,
in case within ({...}). */
- if ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
- && lvalue_p (expr))
- || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE)
+ if (!stmts_are_full_exprs_p &&
+ ((TREE_CODE (TREE_TYPE (expr)) == ARRAY_TYPE
+ && lvalue_p (expr))
+ || TREE_CODE (TREE_TYPE (expr)) == FUNCTION_TYPE))
expr = default_conversion (expr);
if (stmts_are_full_exprs_p)