aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-11-13 22:08:16 +0000
committerRichard Stallman <rms@gnu.org>1993-11-13 22:08:16 +0000
commit177f65eab335e95b09025a4a542662dbc797b897 (patch)
treefcd5cab918877992890a8d575f2f767359621f20
parent6026c19c421f68b112c57494c704749c4a94de62 (diff)
downloadgcc-177f65eab335e95b09025a4a542662dbc797b897.zip
gcc-177f65eab335e95b09025a4a542662dbc797b897.tar.gz
gcc-177f65eab335e95b09025a4a542662dbc797b897.tar.bz2
(dbxout_type_field): Skip fields with variable
position and/or size instead of crashing on them. From-SVN: r6080
-rw-r--r--gcc/dbxout.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index 68fd03b..a952af5 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -590,6 +590,11 @@ dbxout_type_fields (type)
/* Omit here local type decls until we know how to support them. */
else if (TREE_CODE (tem) == TYPE_DECL)
continue;
+ /* Omit fields whose position or size are variable. */
+ else if (TREE_CODE (tem) == FIELD_DECL
+ && (TREE_CODE (DECL_FIELD_BITPOS (tem)) != INTEGER_CST
+ || TREE_CODE (DECL_SIZE (tem)) != INTEGER_CST))
+ continue;
/* Omit here the nameless fields that are used to skip bits. */
else if (DECL_NAME (tem) != 0 && TREE_CODE (tem) != CONST_DECL)
{
@@ -656,9 +661,6 @@ dbxout_type_fields (type)
TREE_INT_CST_LOW (DECL_FIELD_BITPOS (tem)),
TREE_INT_CST_LOW (DECL_SIZE (tem)));
}
- else
- /* This has yet to be implemented. */
- abort ();
CHARS (23);
}
}