diff options
author | Joseph Myers <jsm28@cam.ac.uk> | 2001-12-17 01:18:41 +0000 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2001-12-17 01:18:41 +0000 |
commit | 8d37a5c0db11afb1c4b6d578ad46d1dfb1213118 (patch) | |
tree | b0c444fe54bd3f1b332cc67c0727beaa08189268 /gcc/c-common.h | |
parent | cf6ede82ac9bf9fdd08be25e806e131ac9a8f47e (diff) | |
download | gcc-8d37a5c0db11afb1c4b6d578ad46d1dfb1213118.zip gcc-8d37a5c0db11afb1c4b6d578ad46d1dfb1213118.tar.gz gcc-8d37a5c0db11afb1c4b6d578ad46d1dfb1213118.tar.bz2 |
re PR c/5105 (compound literal patch broken with inlining)
* c-common.def (COMPOUND_LITERAL_EXPR): Contain a DECL_STMT, not
a DECL directly.
* c-common.h (COMPOUND_LITERAL_EXPR_DECL_STMT): New.
(COMPOUND_LITERAL_EXPR_DECL): Adjust definition.
* c-decl.c (build_compound_literal): Put the decl inside a
DECL_STMT.
* doc/c-tree.texi (COMPOUND_LITERAL_EXPR): Update documentation.
Fixes PR c/5105.
testsuite:
* gcc.c-torture/compile/20011217-1.c: New test.
From-SVN: r48085
Diffstat (limited to 'gcc/c-common.h')
-rw-r--r-- | gcc/c-common.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/c-common.h b/gcc/c-common.h index 514c448..61b8f84 100644 --- a/gcc/c-common.h +++ b/gcc/c-common.h @@ -637,9 +637,11 @@ extern tree strip_array_types PARAMS ((tree)); the given label statement. */ #define LABEL_STMT_LABEL(NODE) TREE_OPERAND (LABEL_STMT_CHECK (NODE), 0) -/* COMPOUND_LITERAL_EXPR accessor. */ -#define COMPOUND_LITERAL_EXPR_DECL(NODE) \ +/* COMPOUND_LITERAL_EXPR accessors. */ +#define COMPOUND_LITERAL_EXPR_DECL_STMT(NODE) \ TREE_OPERAND (COMPOUND_LITERAL_EXPR_CHECK (NODE), 0) +#define COMPOUND_LITERAL_EXPR_DECL(NODE) \ + DECL_STMT_DECL (COMPOUND_LITERAL_EXPR_DECL_STMT (NODE)) /* Nonzero if this SCOPE_STMT is for the beginning of a scope. */ #define SCOPE_BEGIN_P(NODE) \ |