aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorMichael Meissner <meissner@cygnus.com>1999-09-22 21:37:20 +0000
committerMichael Meissner <meissner@gcc.gnu.org>1999-09-22 21:37:20 +0000
commit405f63da1c335254a9f4c27bde94d7be7340524c (patch)
tree57b94d994167c688cb82c4a1fe633296abed1717 /gcc/dwarf2out.c
parentf9bd8d8e45377edd96155bc38295f483c67a973a (diff)
downloadgcc-405f63da1c335254a9f4c27bde94d7be7340524c.zip
gcc-405f63da1c335254a9f4c27bde94d7be7340524c.tar.gz
gcc-405f63da1c335254a9f4c27bde94d7be7340524c.tar.bz2
Fix complex-5.c problem
From-SVN: r29604
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index a79339c..43d1eaa 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -6248,9 +6248,15 @@ base_type_die (type)
|| TREE_CODE (type) == VOID_TYPE)
return 0;
- if (TREE_CODE (name) == TYPE_DECL)
- name = DECL_NAME (name);
- type_name = IDENTIFIER_POINTER (name);
+ if (name)
+ {
+ if (TREE_CODE (name) == TYPE_DECL)
+ name = DECL_NAME (name);
+
+ type_name = IDENTIFIER_POINTER (name);
+ }
+ else
+ type_name = "__unknown__";
switch (TREE_CODE (type))
{
@@ -6284,8 +6290,13 @@ base_type_die (type)
encoding = DW_ATE_float;
break;
+ /* Dwarf2 doesn't know anything about complex ints, so use
+ a user defined type for it. */
case COMPLEX_TYPE:
- encoding = DW_ATE_complex_float;
+ if (TREE_CODE (TREE_TYPE (type)) == REAL_TYPE)
+ encoding = DW_ATE_complex_float;
+ else
+ encoding = DW_ATE_lo_user;
break;
case BOOLEAN_TYPE: