OSDN Git Service

PR c/456
[pf3gnuchains/gcc-fork.git] / gcc / c-common.def
1 /* This file contains the definitions and documentation for the
2    additional tree codes used in the GNU C compiler (see tree.def
3    for the standard codes).
4    Copyright (C) 1987, 1988, 1990, 1993, 1997, 1998,
5    1999, 2000, 2001, 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
6    Written by Benjamin Chelf <chelf@codesourcery.com>
7
8 This file is part of GCC.
9
10 GCC is free software; you can redistribute it and/or modify it under
11 the terms of the GNU General Public License as published by the Free
12 Software Foundation; either version 3, or (at your option) any later
13 version.
14
15 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
16 WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
18 for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with GCC; see the file COPYING3.  If not see
22 <http://www.gnu.org/licenses/>.  */
23
24 /* Tree nodes used in the C frontend.  These are also shared with the
25    C++ and Objective C frontends.  */
26
27 /* A COMPOUND_LITERAL_EXPR represents a C99 compound literal.  The
28    COMPOUND_LITERAL_EXPR_DECL_STMT is the a DECL_STMT containing the decl
29    for the anonymous object represented by the COMPOUND_LITERAL;
30    the DECL_INITIAL of that decl is the CONSTRUCTOR that initializes
31    the compound literal.  */
32 DEFTREECODE (COMPOUND_LITERAL_EXPR, "compound_literal_expr", tcc_expression, 1)
33
34 /* A C_MAYBE_CONST_EXPR, currently only used for C and Objective C,
35    tracks information about constancy of an expression and VLA type
36    sizes or VM expressions from typeof that need to be evaluated
37    before the main expression.  It is used during parsing and removed
38    in c_fully_fold.  C_MAYBE_CONST_EXPR_PRE is the expression to
39    evaluate first, if not NULL; C_MAYBE_CONST_EXPR_EXPR is the main
40    expression.  If C_MAYBE_CONST_EXPR_INT_OPERANDS is set then the
41    expression may be used in an unevaluated part of an integer
42    constant expression, but not in an evaluated part.  If
43    C_MAYBE_CONST_EXPR_NON_CONST is set then the expression contains
44    something that cannot occur in an evaluated part of a constant
45    expression (or outside of sizeof in C90 mode); otherwise it does
46    not.  */
47 DEFTREECODE (C_MAYBE_CONST_EXPR, "c_maybe_const_expr", tcc_expression, 2)
48
49 /*
50 Local variables:
51 mode:c
52 End:
53 */