aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/decl.c
AgeCommit message (Collapse)AuthorFilesLines
2008-07-29Moved to gcc-interface.Arnaud Charlet1-7648/+0
From-SVN: r138260
2008-07-02* decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.Eric Botcazou1-18/+19
From-SVN: r137350
2008-06-27ada-tree.h (SET_TYPE_LANG_SPECIFIC, [...]): Fix -Wc++-compat warnings.Kaveh R. Ghazi1-1/+1
* ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix -Wc++-compat warnings. * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec, __gnat_locate_exec_on_path): Likewise. * decl.c (annotate_value): Likewise. * misc.c (gnat_handle_option): Likewise. * trans.c (gnat_to_gnu, extract_encoding, decode_name, post_error_ne_tree): Likewise. From-SVN: r137192
2008-06-13decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0 if undefined.Olivier Hainque1-0/+36
2008-06-13 Olivier Hainque <hainque@adacore.com> ada/ * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0 if undefined. (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack realignment with force_align_arg_pointer attribute on foreign convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN. testsuite/ * gnat.dg/task_stack_align.adb: New test. From-SVN: r136768
2008-06-12decl.c (gnat_to_gnu_entity): In the case of a constrained subtype of a ↵Eric Botcazou1-44/+54
discriminated type... * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a constrained subtype of a discriminated type, discard the fields that are beyond its limits according to its size. From-SVN: r136707
2008-06-09decl.c (components_to_record): Adjust the packedness for the qualified union ↵Eric Botcazou1-1/+7
as well. * decl.c (components_to_record): Adjust the packedness for the qualified union as well. From-SVN: r136583
2008-06-06ada-tree.h (DECL_PARALLEL_TYPE): New language specific attribute...Nicolas Setton1-0/+11
2008-06-06 Nicolas Setton <setton@adacore.com> Olivier Hainque <hainque@adacore.com> * ada-tree.h (DECL_PARALLEL_TYPE): New language specific attribute, parallel descriptive type attached to another type for debug info generation purposes. * utils.c (add_parallel_type): New function, register parallel type to be attached to a type. (get_parallel_type): New function, fetch a registered parallel type, if any. (rest_of_record_type_compilation): Register the parallel type we make for variable size records. * gigi.h (add_parallel_type, get_parallel_type): Declare. * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the parallel debug types we make. * trans.c (extract_encoding, decode_name): New functions. (gigi): If the DWARF attribute extensions are available, setup to use them. * lang.opt: Register language specific processing request for -gdwarf+. * misc.c (gnat_dwarf_extensions): New global variable. How much do we want of our DWARF extensions. 0 by default. (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions. (gnat_post_options): Map gnat_dwarf_extensions to the common use_gnu_debug_info_extensions for later processing. Co-Authored-By: Olivier Hainque <hainque@adacore.com> From-SVN: r136506
2008-05-23gigi.h (mark_visited): Declare.Eric Botcazou1-8/+10
* gigi.h (mark_visited): Declare. * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking only the topmost node of expressions. (elaborate_expression_1): Look deeper for read-only variable. * trans.c (add_decl_expr): Use mark_visited instead of marking by hand. (mark_visited): Move logic to mark_visited_r. Invoke walk_tree. (mark_visited_r): New function. From-SVN: r135819
2008-05-20decl.c: Do not emit a variable for a object that has an address ↵Tristan Gingold1-3/+36
representation clause... 2008-05-20 Tristan Gingold <gingold@adacore.com> * decl.c: Do not emit a variable for a object that has an address representation clause whose value is known at compile time. When a variable has an address clause whose value is known at compile time, refer to this variable by using directly the address instead of dereferencing a pointer. From-SVN: r135618
2008-05-12* utils2.c (known_alignment, contains_save_expr_p)Tomas Bily1-1/+1
(gnat_mark_addressable): Use CASE_CONVERT. * decl.c (annotate_value): Likewise. * trans.c (maybe_stabilize_reference): Likewise. * utils2.c (build_binary_op): Use CONVERT_EXPR_P. * utils.c (rest_of_record_type_compilation): Likewise. * trans.c (protect_multiple_eval, Attribute_to_gnu) (protect_multiple_eval): Likewise. From-SVN: r135215
2008-05-05* decl.c (maybe_pad_type): Add ??? comment.Eric Botcazou1-1/+7
From-SVN: r134953
2008-05-03decl.c (components_to_record): Zero the alignment of the qualified union ↵Eric Botcazou1-0/+1
built for the variant part upon... * decl.c (components_to_record): Zero the alignment of the qualified union built for the variant part upon creating it. From-SVN: r134917
2008-05-03decl.c (maybe_pad_type): Try to get a form of the type with integral mode ↵Eric Botcazou1-35/+41
even if... * decl.c (maybe_pad_type): Try to get a form of the type with integral mode even if the alignment is not a factor of the original size. But make sure to create the inner field with the original size. Reorder. * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding record as always addressable. * utils.c (convert): Deal specially with conversions between original and packable versions of a record type. * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when recognizing an assignment between padded objects. From-SVN: r134916
2008-05-01decl.c (make_packable_type): Resize the last component to its RM size only ↵Eric Botcazou1-5/+14
if it is of an aggregate type. * decl.c (make_packable_type): Resize the last component to its RM size only if it is of an aggregate type. * trans.c (call_to_gnu): Fix nit in comment. (gnat_to_gnu): Likewise. From-SVN: r134848
2008-04-28re PR ada/36007 (verify_gimple failed)Eric Botcazou1-1/+2
PR ada/36007 * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment of aliased objects with an unconstrained nominal subtype. Cap the promotion to the effective alignment of the word mode. Co-Authored-By: Tristan Gingold <gingold@adacore.com> From-SVN: r134766
2008-04-20decl.c (gnat_to_gnu_entity): Also promote the alignment of constant objects, ↵Eric Botcazou1-9/+12
but not exceptions. * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of constant objects, but not exceptions. * trans.c (add_decl_expr): Use gnat_types_compatible_p for type compatibility test. * utils.c (create_var_decl_1): Likewise. * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of the type when copying to padded object and the source is a constructor. From-SVN: r134483
2008-04-19decl.c (gnat_to_gnu_entity): When trying to promote the alignment...Eric Botcazou1-3/+3
* decl.c (gnat_to_gnu_entity) <object>: When trying to promote the alignment, reset it to zero if it would end up not being greater than that of the type. From-SVN: r134461
2008-04-18decl.c (maybe_pad_type): Only generate the XVS parallel type if the padded ↵Eric Botcazou1-3/+4
type has a variable size. * decl.c (maybe_pad_type): Only generate the XVS parallel type if the padded type has a variable size. From-SVN: r134443
2008-04-18decl.c (gnat_to_gnu_entity): Use the return by target pointer mechanism as ↵Eric Botcazou1-5/+7
soon as the size is not constant. * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by target pointer mechanism as soon as the size is not constant. From-SVN: r134433
2008-04-17decl.c (gnat_to_gnu_entity): Promote the alignment of objects by default.Eric Botcazou1-2/+1
* decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of objects by default. * fe.h (Debug_Flag_Dot_A): Delete. * debug.adb (-gnatd.a): Update documentation. From-SVN: r134390
2008-04-15ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.Eric Botcazou1-19/+22
* ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3. * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only if a size or alignment is specified. Do not take into account alignment promotions for the computation of the object's size. <type>: Call maybe_pad_type only if a size or alignment is specified. (maybe_pad_type): Really reuse the RM_Size of the original type if requested. * trans.c (Attribute_to_gnu): Fix a couple of nits. * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional statements. Use the padded view of the type when copying between padded objects of the same underlying type. From-SVN: r134310
2008-04-09decl.c (validate_size): Set minimum size for fat pointers same as access types.Doug Rupp1-6/+4
2008-04-09 Doug Rupp <rupp@adacore.com> * decl.c (validate_size): Set minimum size for fat pointers same as access types. Code clean ups. * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant * s-crtl.ads (malloc32) New function, alias for malloc (realloc32) New function, alias for realloc * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS * utils2.c (build_call_alloc_dealloc): Return call to short malloc if allocator size is 32 and default pointer size is 64. (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of lhs type if smaller, whatever the modes. * gigi.h (malloc32_decl): New macro definition * utils.c (init_gigi_decls): New malloc32_decl Various code clean ups. * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to Task_Address vice System.Address. * s-taspri-vms.ads: Import System.Aux_DEC (Task_Address): New subtype of System.Aux_DEC.Short_Address (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to Task_Address vice System.Address. * s-inmaop-vms.adb: Import System.Task_Primitives (To_Address): Unchecked convert to Task_Address vice System.Address * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay expires now. (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address (To_Address) Unchecked convert to Task_Address vice System.Address * s-tpopde-vms.adb: Remove unnecessary warning pragmas * g-socthi-vms.ads: Add 32bit size clauses on socket access types. From-SVN: r134131
2008-04-08gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.Eric Botcazou1-0/+16
* gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc. (fdesc_type_node): Define. (null_fdesc_node): Likewise. * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target uses descriptors for vtables and the type comes from a dispatch table, return the descriptor type. * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target uses descriptors for vtables and the type comes from a dispatch table, build a descriptor in the static case and copy the existing one in the non-static case. (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and the type is a pointer-to-subprogram coming from a dispatch table, return the null descriptor. <N_Unchecked_Type_Conversion>: If the target uses descriptors for vtables, the source type is the descriptor type and the target type is a pointer type, first build the pointer. * utils.c (init_gigi_decls): If the target uses descriptors for vtables build the descriptor type and the null descriptor. From-SVN: r134101
2008-04-08decl.c (prepend_attributes): Fix typo.Eric Botcazou1-2/+2
* decl.c (prepend_attributes): Fix typo. * trans.c (Pragma_to_gnu): Likewise. * utils.c (gnat_genericize): Likewise. From-SVN: r134094
2008-04-08ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.Eric Botcazou1-13/+16
* ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed. * decl.c (gnat_to_gnu_entity): Adjust for above change. <E_Record_Type>: Try to get a better form of the component for packing, even if it has an integral mode. <E_Record_Subtype>: Likewise. * trans.c (gnat_to_gnu): Do not require BLKmode for the special exception suppressing the final conversion between record types. Co-Authored-By: Richard Kenner <kenner@adacore.com> From-SVN: r134093
2008-04-08decl.c (gnat_to_gnu_entity): If -gnatd.a and not optimizing alignment for ↵Eric Botcazou1-8/+31
space... * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing alignment for space, promote the alignment of non-scalar variables with no size and alignment. * gigi.h (gnat_types_compatible_p): Declare. * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate. * trans.c (gnat_to_gnu): Revert revision 129339 change. Minor cleanup. * utils.c (gnat_types_compatible_p) : New predicate. (convert): Use it throughout to test for cases where a mere view conversion is sufficient. * utils2.c (build_binary_op): Minor tweaks. (build_unary_op): Likewise. From-SVN: r134092
2008-04-08decl.c (adjust_packed): Expand comment.Eric Botcazou1-1/+3
* decl.c (adjust_packed): Expand comment. From-SVN: r134091
2008-04-07Removal of Return with Depressed Stack Pointer supportEric Botcazou1-6/+2
Removal of Return with Depressed Stack Pointer support * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete. (ECF_SP_DEPRESSED): Likewise. (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust. * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED. (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED. (expand_call): Do not test ECF_SP_DEPRESSED. * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED. * function.c (keep_stack_depressed): Delete. (handle_epilogue_set): Likewise. (update_epilogue_consts): Likewise. (emit_equiv_load): Likewise. (thread_prologue_and_epilogue_insns): Remove support for Return with Depressed Stack Pointer. * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED. ada/ * gigi.h (create_subprog_type): Remove returns_with_dsp parameter. * decl.c (gnat_to_gnu_entity): Adjust for above new prototype. * utils.c (create_subprog_type): Remove returns_with_dsp parameter. * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with Return by Depressed Stack Pointer. From-SVN: r133976
2008-04-06decl.c (is_variable_size): Do not unconditionally return false on non-strict ↵Eric Botcazou1-10/+9
alignment platforms. * decl.c (is_variable_size): Do not unconditionally return false on non-strict alignment platforms. From-SVN: r133961
2008-04-06decl.c (rest_of_type_decl_compilation_no_defer): New local function used to ↵Eric Botcazou1-10/+37
process all the variants of the specified type. * decl.c (rest_of_type_decl_compilation_no_defer): New local function used to process all the variants of the specified type. (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral types too. Call rest_of_type_decl_compilation_no_defer if undeferring. (rest_of_type_decl_compilation): Likewise. * utils.c (gnat_pushdecl): Propagate the name to all variants of type. From-SVN: r133957
2008-04-02decl.c (gnat_to_gnu_entity): For a constant object whose type has ↵Eric Botcazou1-5/+24
self-referential size... * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose type has self-referential size, get the size from the initializing expression directly if it is also a constant whose nominal type has self-referential size. From-SVN: r133831
2008-03-31decl.c (gnat_to_gnu_entity): Do not force a non-null size if it has overflowed.Eric Botcazou1-2/+6
* decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null size if it has overflowed. From-SVN: r133768
2008-03-27decl.c (gnat_to_gnu_entity): Also set the public flag if the procedure is ↵Eric Botcazou1-1/+1
imported. * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag if the procedure is imported. From-SVN: r133650
2008-03-26tbuild.ads, [...] (N_Pragma): Chars field removed, use Chars ↵Robert Dewar1-3/+4
(Pragma_Identifier (.. 2008-03-26 Robert Dewar <dewar@adacore.com> * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c, par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field removed, use Chars (Pragma_Identifier (.. instead, adjustments throughout to accomodate this change. * s-pooglo.ads, s-pooloc.ads: Minor comment updates * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not Einfo.Set_Needs_Debug_Info) From-SVN: r133587
2008-03-25revert: re PR ada/35186 (implicit assumption about alignment of DImode)Eric Botcazou1-12/+0
Revert 2008-03-05 Eric Botcazou <ebotcazou@adacore.com> PR ada/35186 * decl.c (maybe_pad_type): Avoid padding an integral type when bumping its alignment is sufficient. From-SVN: r133526
2008-03-08decl.c (maybe_pad_type): Use value_factor_p.Eric Botcazou1-4/+3
* decl.c (maybe_pad_type): Use value_factor_p. From-SVN: r133039
2008-03-08decl.c (gnat_to_gnu_entity): Do not bother propagating the TYPE_USER_ALIGN ↵Eric Botcazou1-2/+1
flag when creating a JM type. * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not bother propagating the TYPE_USER_ALIGN flag when creating a JM type. From-SVN: r133032
2008-03-08decl.c (gnat_to_gnu_entity): Do not force BIGGEST_ALIGNMENT when capping the ↵Eric Botcazou1-2/+3
alignment of records with... * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force BIGGEST_ALIGNMENT when capping the alignment of records with strict alignment and size clause. From-SVN: r133031
2008-03-08decl.c (gnat_to_gnu_entity): Add support for scalar types with small alignment.Eric Botcazou1-0/+39
* decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support for scalar types with small alignment. From-SVN: r133027
2008-03-07decl.c (gnat_to_gnu_entity): Add comment for the packed array type case.Eric Botcazou1-0/+5
* decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add comment for the packed array type case. * utils.c (build_template): Use a loop to strip padding or containing records for justified modular types. From-SVN: r133014
2008-03-07decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously large ↵Eric Botcazou1-12/+46
alignments specified for types. * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously large alignments specified for types. (validate_alignment): Minor cleanup. From-SVN: r133012
2008-03-07decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.Eric Botcazou1-89/+205
* decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined. (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of the component for packing, if possible, as well as if a component size clause is specified. <E_Record_Subtype>: For an array type used to implement a packed array, get the component type from the original array type. Try to get a smaller form of the component for packing, if possible, as well as if a component size clause is specified. (round_up_to_align): New function. (make_packable_type): Add in_record parameter. For a padding record, preserve the size. If not in_record and the size is too large for an integral mode, attempt to shrink the size by lowering the alignment. Ditch the padding bits of the last component. Compute sizes and mode manually, and propagate the RM size. Return a BLKmode record type if its size has shrunk. (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT. Use Original_Array_Type to retrieve the type in case of an error. Adjust call to make_packable_type. (gnat_to_gnu_field): Likewise. (concat_id_with_name): Minor tweak. * trans.c (larger_record_type_p): New predicate. (call_to_gnu): Compute the nominal type of the object only if the parameter is by-reference. Do the conversion actual type -> nominal type if the nominal type is a larger record. (gnat_to_gnu): Do not require integral modes on the source type to avoid the conversion for types with identical names. (addressable_p): Add gnu_type parameter. If it is specified, do not return true if the expression is not addressable in gnu_type. Adjust recursive calls. * utils.c (finish_record_type): Remove dead code. From-SVN: r133011
2008-03-06re PR ada/35186 (implicit assumption about alignment of DImode)Eric Botcazou1-2/+13
PR ada/35186 * decl.c (maybe_pad_type): Avoid padding an integral type when bumping its alignment is sufficient. From-SVN: r132963
2008-01-26decl.c (components_to_record): Improve comment.Eric Botcazou1-2/+3
* decl.c (components_to_record): Improve comment. From-SVN: r131858
2008-01-22decl.c (components_to_record): Do not reuse the empty union type if there is ↵Eric Botcazou1-3/+9
a representation clause on the record. * decl.c (components_to_record): Do not reuse the empty union type if there is a representation clause on the record. * trans.c (addressable_p): Return true for INTEGER_CST. From-SVN: r131733
2008-01-14decl.c (gnat_to_gnu_entity): Process renamings before converting the ↵Eric Botcazou1-17/+20
expression to the type of the object. * decl.c (gnat_to_gnu_entity) <object>: Process renamings before converting the expression to the type of the object. * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case. Stabilize constructors for special wrapping types. From-SVN: r131531
2008-01-13* trans.c (call_to_gnu):Invoke the addressable_p predicate onlyEric Botcazou1-10/+10
when necessary.  Merge some conditional statements.  Update comments. Rename unchecked_convert_p local variable to suppress_type_conversion. Do not suppress conversions in the In case. (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues into account on non strict-alignment platforms. From-SVN: r131510
2007-12-07decl.c (gnat_to_gnu_entity): When computing the designated full view...Olivier Hainque1-1/+2
2007-12-07 Olivier Hainque <hainque@adacore.com> ada/ * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing the designated full view, only follow a second level Full_View link for Non_Limited_Views of from_limited_with references. testsuite/ * gnat.dg/tamdt*.ad?: Support for ... * gnat.dg/test_tamdt.adb: New test. From-SVN: r130679
2007-12-07re PR ada/34173 (FAIL: gnat.dg/release_unc_maxalign.adb execution test)Olivier Hainque1-1/+5
2007-12-07 Olivier Hainque <hainque@adacore.com> PR ada/34173 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if this is from an alignment clause on the GNAT entity. * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN to distinguish the case where we set it from the type's alignment. When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate whether this alignment was set from an explicit alignment clause. From-SVN: r130673
2007-12-06decl.c (make_packable_type): Revert last change.Eric Botcazou1-30/+27
* decl.c (make_packable_type): Revert last change. (gnat_to_gnu_field): Avoid setting size and position multiple times. * utils.c (finish_record_type): Retrieve the real name of the type. From-SVN: r130665