aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-09-17 10:03:12 +0000
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2007-09-17 10:03:12 +0000
commitdfcf0b12d158836cc29b0c373584a73dd7b68de8 (patch)
tree1240b84b2bd7df4c7d14bd5e25babb63287c7bd8
parent42cbdeac683d395849c9fee5e3e07b6a00093c5a (diff)
downloadgcc-dfcf0b12d158836cc29b0c373584a73dd7b68de8.zip
gcc-dfcf0b12d158836cc29b0c373584a73dd7b68de8.tar.gz
gcc-dfcf0b12d158836cc29b0c373584a73dd7b68de8.tar.bz2
trans-types.c (gfc_get_desc_dim_type): Do not to try emit debug info.
* trans-types.c (gfc_get_desc_dim_type): Do not to try emit debug info. (gfc_get_array_descriptor_base): Likewise. (gfc_get_mixed_entry_union): Likewise (gfc_get_derived_type): Set decl location for fields and derived type itself. From-SVN: r128540
-rw-r--r--gcc/fortran/ChangeLog9
-rw-r--r--gcc/fortran/trans-types.c8
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 6aca2c7..9137da5 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2007-09-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ * trans-types.c (gfc_get_desc_dim_type): Do not to try
+ emit debug info.
+ (gfc_get_array_descriptor_base): Likewise.
+ (gfc_get_mixed_entry_union): Likewise
+ (gfc_get_derived_type): Set decl location for fields and
+ derived type itself.
+
2007-09-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29396
diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c
index ba72466..cfdd399 100644
--- a/gcc/fortran/trans-types.c
+++ b/gcc/fortran/trans-types.c
@@ -1104,6 +1104,7 @@ gfc_get_desc_dim_type (void)
TYPE_FIELDS (type) = fieldlist;
gfc_finish_type (type);
+ TYPE_DECL_SUPPRESS_DEBUG (TYPE_STUB_DECL (type)) = 1;
gfc_desc_dim_type = type;
return type;
@@ -1411,6 +1412,7 @@ gfc_get_array_descriptor_base (int dimen)
TYPE_FIELDS (fat_type) = fieldlist;
gfc_finish_type (fat_type);
+ TYPE_DECL_SUPPRESS_DEBUG (TYPE_STUB_DECL (fat_type)) = 1;
gfc_array_descriptor_base[dimen - 1] = fat_type;
return fat_type;
@@ -1807,6 +1809,10 @@ gfc_get_derived_type (gfc_symbol * derived)
field = gfc_add_field_to_struct (&fieldlist, typenode,
get_identifier (c->name),
field_type);
+ if (c->loc.lb)
+ gfc_set_decl_location (field, &c->loc);
+ else if (derived->declared_at.lb)
+ gfc_set_decl_location (field, &derived->declared_at);
DECL_PACKED (field) |= TYPE_PACKED (typenode);
@@ -1820,6 +1826,7 @@ gfc_get_derived_type (gfc_symbol * derived)
TYPE_FIELDS (typenode) = fieldlist;
gfc_finish_type (typenode);
+ gfc_set_decl_location (TYPE_STUB_DECL (typenode), &derived->declared_at);
derived->backend_decl = typenode;
@@ -1897,6 +1904,7 @@ gfc_get_mixed_entry_union (gfc_namespace *ns)
TYPE_FIELDS (type) = fieldlist;
gfc_finish_type (type);
+ TYPE_DECL_SUPPRESS_DEBUG (TYPE_STUB_DECL (type)) = 1;
return type;
}