diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2012-05-10 22:17:37 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2012-05-10 22:17:37 +0000 |
commit | e580d8ee5945c1d40c0e684acaf1d54f2317c360 (patch) | |
tree | c3a36f44db116111b006f663717fd9c66d1d81e5 /gcc/dwarf2out.c | |
parent | 7b84aac03c4375c97843d5435f8548482028fa7a (diff) | |
download | gcc-e580d8ee5945c1d40c0e684acaf1d54f2317c360.zip gcc-e580d8ee5945c1d40c0e684acaf1d54f2317c360.tar.gz gcc-e580d8ee5945c1d40c0e684acaf1d54f2317c360.tar.bz2 |
dwarf2out.c (add_byte_size_attribute): Handle variable reference as size attribute.
* dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
reference as size attribute.
From-SVN: r187384
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 7460bbf..1e5e335 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -15156,6 +15156,7 @@ add_subscript_info (dw_die_ref type_die, tree type, bool collapse_p) static void add_byte_size_attribute (dw_die_ref die, tree tree_node) { + dw_die_ref decl_die; unsigned size; switch (TREE_CODE (tree_node)) @@ -15167,6 +15168,12 @@ add_byte_size_attribute (dw_die_ref die, tree tree_node) case RECORD_TYPE: case UNION_TYPE: case QUAL_UNION_TYPE: + if (TREE_CODE (TYPE_SIZE_UNIT (tree_node)) == VAR_DECL + && (decl_die = lookup_decl_die (TYPE_SIZE_UNIT (tree_node)))) + { + add_AT_die_ref (die, DW_AT_byte_size, decl_die); + return; + } size = int_size_in_bytes (tree_node); break; case FIELD_DECL: |