xref: /dflybsd-src/contrib/gcc-4.7/gcc/c-family/c-common.def (revision 04febcfb30580676d3e95f58a16c5137ee478b32)
1*e4b17023SJohn Marino/* This file contains the definitions and documentation for the
2*e4b17023SJohn Marino   additional tree codes used in the GNU C compiler (see tree.def
3*e4b17023SJohn Marino   for the standard codes).
4*e4b17023SJohn Marino   Copyright (C) 1987, 1988, 1990, 1993, 1997, 1998,
5*e4b17023SJohn Marino   1999, 2000, 2001, 2004, 2005, 2007, 2009, 2010
6*e4b17023SJohn Marino   Free Software Foundation, Inc.
7*e4b17023SJohn Marino   Written by Benjamin Chelf <chelf@codesourcery.com>
8*e4b17023SJohn Marino
9*e4b17023SJohn MarinoThis file is part of GCC.
10*e4b17023SJohn Marino
11*e4b17023SJohn MarinoGCC is free software; you can redistribute it and/or modify it under
12*e4b17023SJohn Marinothe terms of the GNU General Public License as published by the Free
13*e4b17023SJohn MarinoSoftware Foundation; either version 3, or (at your option) any later
14*e4b17023SJohn Marinoversion.
15*e4b17023SJohn Marino
16*e4b17023SJohn MarinoGCC is distributed in the hope that it will be useful, but WITHOUT ANY
17*e4b17023SJohn MarinoWARRANTY; without even the implied warranty of MERCHANTABILITY or
18*e4b17023SJohn MarinoFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
19*e4b17023SJohn Marinofor more details.
20*e4b17023SJohn Marino
21*e4b17023SJohn MarinoYou should have received a copy of the GNU General Public License
22*e4b17023SJohn Marinoalong with GCC; see the file COPYING3.  If not see
23*e4b17023SJohn Marino<http://www.gnu.org/licenses/>.  */
24*e4b17023SJohn Marino
25*e4b17023SJohn Marino/* Tree nodes used in the C frontend.  These are also shared with the
26*e4b17023SJohn Marino   C++ and Objective C frontends.  */
27*e4b17023SJohn Marino
28*e4b17023SJohn Marino/* A C_MAYBE_CONST_EXPR, currently only used for C and Objective C,
29*e4b17023SJohn Marino   tracks information about constancy of an expression and VLA type
30*e4b17023SJohn Marino   sizes or VM expressions from typeof that need to be evaluated
31*e4b17023SJohn Marino   before the main expression.  It is used during parsing and removed
32*e4b17023SJohn Marino   in c_fully_fold.  C_MAYBE_CONST_EXPR_PRE is the expression to
33*e4b17023SJohn Marino   evaluate first, if not NULL; C_MAYBE_CONST_EXPR_EXPR is the main
34*e4b17023SJohn Marino   expression.  If C_MAYBE_CONST_EXPR_INT_OPERANDS is set then the
35*e4b17023SJohn Marino   expression may be used in an unevaluated part of an integer
36*e4b17023SJohn Marino   constant expression, but not in an evaluated part.  If
37*e4b17023SJohn Marino   C_MAYBE_CONST_EXPR_NON_CONST is set then the expression contains
38*e4b17023SJohn Marino   something that cannot occur in an evaluated part of a constant
39*e4b17023SJohn Marino   expression (or outside of sizeof in C90 mode); otherwise it does
40*e4b17023SJohn Marino   not.  */
41*e4b17023SJohn MarinoDEFTREECODE (C_MAYBE_CONST_EXPR, "c_maybe_const_expr", tcc_expression, 2)
42*e4b17023SJohn Marino
43*e4b17023SJohn Marino/* An EXCESS_PRECISION_EXPR, currently only used for C and Objective
44*e4b17023SJohn Marino   C, represents an expression evaluated in greater range or precision
45*e4b17023SJohn Marino   than its type.  The type of the EXCESS_PRECISION_EXPR is the
46*e4b17023SJohn Marino   semantic type while the operand represents what is actually being
47*e4b17023SJohn Marino   evaluated.  */
48*e4b17023SJohn MarinoDEFTREECODE (EXCESS_PRECISION_EXPR, "excess_precision_expr", tcc_expression, 1)
49*e4b17023SJohn Marino
50*e4b17023SJohn Marino/* Used to represent a user-defined literal.
51*e4b17023SJohn Marino   The operands are an IDENTIFIER for the suffix, the VALUE of the literal,
52*e4b17023SJohn Marino   and for numeric literals the original string representation of the
53*e4b17023SJohn Marino   number.  */
54*e4b17023SJohn MarinoDEFTREECODE (USERDEF_LITERAL, "userdef_literal", tcc_exceptional, 3)
55*e4b17023SJohn Marino
56*e4b17023SJohn Marino/*
57*e4b17023SJohn MarinoLocal variables:
58*e4b17023SJohn Marinomode:c
59*e4b17023SJohn MarinoEnd:
60*e4b17023SJohn Marino*/
61