diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2009-04-21 07:00:44 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2009-04-21 07:00:44 +0000 |
commit | ac53d5f2542c1f667448d87b6640531caf3fa234 (patch) | |
tree | 40c4fb7f5a4df2ce0fc89746f672c6af1875c17f /gcc/ada/gcc-interface/utils.c | |
parent | 59356222e01ceec1b1bdd27e02a27bd8a4f3ec3d (diff) | |
download | gcc-ac53d5f2542c1f667448d87b6640531caf3fa234.zip gcc-ac53d5f2542c1f667448d87b6640531caf3fa234.tar.gz gcc-ac53d5f2542c1f667448d87b6640531caf3fa234.tar.bz2 |
utils.c (create_type_decl): Do not pass declarations of dummy fat pointer types to the debug back-end.
* gcc-interface/utils.c (create_type_decl): Do not pass declarations
of dummy fat pointer types to the debug back-end.
From-SVN: r146467
Diffstat (limited to 'gcc/ada/gcc-interface/utils.c')
-rw-r--r-- | gcc/ada/gcc-interface/utils.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c index 55e474c..8802827 100644 --- a/gcc/ada/gcc-interface/utils.c +++ b/gcc/ada/gcc-interface/utils.c @@ -1244,15 +1244,19 @@ create_type_decl (tree type_name, tree type, struct attrib *attr_list, TYPE_STUB_DECL (type) = type_decl; /* Pass the type declaration to the debug back-end unless this is an - UNCONSTRAINED_ARRAY_TYPE that the back-end does not support, an - ENUMERAL_TYPE or RECORD_TYPE which are handled separately, or a - type for which debugging information was not requested. */ + UNCONSTRAINED_ARRAY_TYPE that the back-end does not support, or a + type for which debugging information was not requested, or else an + ENUMERAL_TYPE or RECORD_TYPE (except for fat pointers) which are + handled separately. And do not pass dummy types either. */ if (code == UNCONSTRAINED_ARRAY_TYPE || !debug_info_p) DECL_IGNORED_P (type_decl) = 1; else if (code != ENUMERAL_TYPE && (code != RECORD_TYPE || TYPE_IS_FAT_POINTER_P (type)) && !((code == POINTER_TYPE || code == REFERENCE_TYPE) - && TYPE_IS_DUMMY_P (TREE_TYPE (type)))) + && TYPE_IS_DUMMY_P (TREE_TYPE (type))) + && !(code == RECORD_TYPE + && TYPE_IS_DUMMY_P + (TREE_TYPE (TREE_TYPE (TYPE_FIELDS (type)))))) rest_of_type_decl_compilation (type_decl); return type_decl; |