comparison gcc/tree.def @ 63:b7f97abdc517 gcc-4.6-20100522

update gcc from gcc-4.5.0 to gcc-4.6
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Mon, 24 May 2010 12:47:05 +0900
parents 77e2b8dfacca
children f6334be47118
comparison
equal deleted inserted replaced
56:3c8a44c06a95 63:b7f97abdc517
1 /* This file contains the definitions and documentation for the 1 /* This file contains the definitions and documentation for the
2 tree codes used in GCC. 2 tree codes used in GCC.
3 Copyright (C) 1987, 1988, 1993, 1995, 1997, 1998, 2000, 2001, 2004, 2005, 3 Copyright (C) 1987, 1988, 1993, 1995, 1997, 1998, 2000, 2001, 2004, 2005,
4 2006, 2007, 2008, 2009 Free Software Foundation, Inc. 4 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5 5
6 This file is part of GCC. 6 This file is part of GCC.
7 7
8 GCC is free software; you can redistribute it and/or modify it under 8 GCC is free software; you can redistribute it and/or modify it under
9 the terms of the GNU General Public License as published by the Free 9 the terms of the GNU General Public License as published by the Free
430 Operand 0 is the referenced address (a pointer); 430 Operand 0 is the referenced address (a pointer);
431 Operand 1 is an INTEGER_CST which represents the alignment of the address, 431 Operand 1 is an INTEGER_CST which represents the alignment of the address,
432 or 0 if the alignment is unknown. */ 432 or 0 if the alignment is unknown. */
433 DEFTREECODE (MISALIGNED_INDIRECT_REF, "misaligned_indirect_ref", tcc_reference, 2) 433 DEFTREECODE (MISALIGNED_INDIRECT_REF, "misaligned_indirect_ref", tcc_reference, 2)
434 434
435 /* Used to represent lookup of runtime type dependent data. Often this is 435 /* Used to represent lookup in a virtual method table which is dependent on
436 a reference to a vtable, but it needn't be. Operands are: 436 the runtime type of an object. Operands are:
437 OBJ_TYPE_REF_EXPR: An expression that evaluates the value to use. 437 OBJ_TYPE_REF_EXPR: An expression that evaluates the value to use.
438 OBJ_TYPE_REF_OBJECT: Is the object on whose behalf the lookup is 438 OBJ_TYPE_REF_OBJECT: Is the object on whose behalf the lookup is
439 being performed. Through this the optimizers may be able to statically 439 being performed. Through this the optimizers may be able to statically
440 determine the dynamic type of the object. 440 determine the dynamic type of the object.
441 OBJ_TYPE_REF_TOKEN: Something front-end specific used to resolve the 441 OBJ_TYPE_REF_TOKEN: An integer index to the virtual method table. */
442 reference to something simpler, usually to the address of a DECL.
443 Never touched by the middle-end. Good choices would be either an
444 identifier or a vtable index. */
445 DEFTREECODE (OBJ_TYPE_REF, "obj_type_ref", tcc_expression, 3) 442 DEFTREECODE (OBJ_TYPE_REF, "obj_type_ref", tcc_expression, 3)
446 443
447 /* Constructor: return an aggregate value made from specified components. 444 /* Constructor: return an aggregate value made from specified components.
448 In C, this is used only for structure and array initializers. 445 In C, this is used only for structure and array initializers.
449 The operand is a sequence of component values made out of a VEC of 446 The operand is a sequence of component values made out of a VEC of
565 562
566 As a consequence, the operand of a CLEANUP_POINT_EXPR must not have 563 As a consequence, the operand of a CLEANUP_POINT_EXPR must not have
567 BLKmode, because it will not be forced out of memory. */ 564 BLKmode, because it will not be forced out of memory. */
568 DEFTREECODE (CLEANUP_POINT_EXPR, "cleanup_point_expr", tcc_expression, 1) 565 DEFTREECODE (CLEANUP_POINT_EXPR, "cleanup_point_expr", tcc_expression, 1)
569 566
570 /* The following two codes are used in languages that have types where 567 /* The following code is used in languages that have types where some
571 some field in an object of the type contains a value that is used in 568 field in an object of the type contains a value that is used in the
572 the computation of another field's offset or size and/or the size of 569 computation of another field's offset or size and/or the size of the
573 the type. The positions and/or sizes of fields can vary from object 570 type. The positions and/or sizes of fields can vary from object to
574 to object of the same type or even for one and the same object within 571 object of the same type or even for one and the same object within
575 its scope. 572 its scope.
576 573
577 Record types with discriminants in Ada or schema types in Pascal are 574 Record types with discriminants in Ada or schema types in Pascal are
578 examples of such types. This mechanism is also used to create "fat 575 examples of such types. This mechanism is also used to create "fat
579 pointers" for unconstrained array types in Ada; the fat pointer is a 576 pointers" for unconstrained array types in Ada; the fat pointer is a