diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-07-02 18:13:47 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-07-02 18:13:47 +0000 |
commit | 5bf971ee4305556fd576fd7a2b97731bcef20471 (patch) | |
tree | d81811c5891ba2622e09eaca7ba4eb4907770a39 /gcc/dwarf2out.c | |
parent | d9fd8d25223bfbfc2259c0a392e3fe525e806fbf (diff) | |
download | gcc-5bf971ee4305556fd576fd7a2b97731bcef20471.tar.gz |
* tree.h (TYPE_ARTIFICIAL): New flag.
* dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
the DIE of the type if it is artificial.
(gen_array_type_die): Likewise.
(gen_enumeration_type_die): Likewise.
(gen_struct_or_union_type_die): Likewise.
* lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
* lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
ada/
* gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
the type according to the ARTIFICIAL_P parameter.
(create_type_decl): Likewise.
(create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175781 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 9ab551d8ed2..a0714c45d26 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -13189,6 +13189,8 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type, name = DECL_NAME (name); add_name_attribute (mod_type_die, IDENTIFIER_POINTER (name)); add_gnat_descriptive_type_attribute (mod_type_die, type, context_die); + if (TYPE_ARTIFICIAL (type)) + add_AT_flag (mod_type_die, DW_AT_artificial, 1); } /* This probably indicates a bug. */ else if (mod_type_die && mod_type_die->die_tag == DW_TAG_base_type) @@ -19444,6 +19446,8 @@ gen_array_type_die (tree type, dw_die_ref context_die) array_die = new_die (DW_TAG_array_type, scope_die, type); add_name_attribute (array_die, type_tag (type)); add_gnat_descriptive_type_attribute (array_die, type, context_die); + if (TYPE_ARTIFICIAL (type)) + add_AT_flag (array_die, DW_AT_artificial, 1); equate_type_number_to_die (type, array_die); if (TREE_CODE (type) == VECTOR_TYPE) @@ -19747,6 +19751,8 @@ gen_enumeration_type_die (tree type, dw_die_ref context_die) equate_type_number_to_die (type, type_die); add_name_attribute (type_die, type_tag (type)); add_gnat_descriptive_type_attribute (type_die, type, context_die); + if (TYPE_ARTIFICIAL (type)) + add_AT_flag (type_die, DW_AT_artificial, 1); if (dwarf_version >= 4 || !dwarf_strict) { if (ENUM_IS_SCOPED (type)) @@ -21604,6 +21610,8 @@ gen_struct_or_union_type_die (tree type, dw_die_ref context_die, { add_name_attribute (type_die, type_tag (type)); add_gnat_descriptive_type_attribute (type_die, type, context_die); + if (TYPE_ARTIFICIAL (type)) + add_AT_flag (type_die, DW_AT_artificial, 1); } } else |